title: Why isn't it possible to call a function on an tuple object?
body: <p>The bStart and bStop click functions literally do the same, yet the bStop function calls an error.</p>
  
  <p>Why isn't it possible to call .hide() on a tuple object?</p>
  
  <pre><code>from PyQt5.QtWidgets import (QApplication, QFrame, QGridLayout, QHBoxLayout, QPushButton, QSizePolicy, QSpacerItem, QToolButton, QVBoxLayout, QWidget, QLabel)
  
  import frames
  
  class GUI(QWidget):
      def __init__(self, parent=None):
          super(GUI, self).__init__(parent=parent)
          self.principalLayout = QHBoxLayout(self)
          self.controlFrame = QFrame(self) 
          self.gridLayout = QGridLayout(self.controlFrame)
          self.principalLayout.addWidget(self.controlFrame)
  
          self.widgets()
  
          print (self.bStart)
          print(buttons(self))
      def widgets(self):
          self.bStart = QPushButton('Start')
          self.gridLayout.addWidget(self.bStart, 0, 0)
          self.bStart.clicked.connect(lambda: self.hide_layout(self.bStart, self.bStop))
  
          self.bStop = QPushButton('Stop')
          self.bStop.clicked.connect(lambda: self.hide_layout(buttons(self)))
          self.gridLayout.addWidget(self.bStop, 0, 2)
  
      def hide_layout(self, *args):
          for a in args:
              a.hide()
  
  
      def show_layout(self, *args):
          for a in args:
              a.show()
  
  def buttons(self):
      return (self.bStart, self.bStop)
  
  if __name__ == '__main__':
      import sys
      app = QApplication(sys.argv)    
      w = GUI()
      w.show()
      sys.exit(app.exec_())
  </code></pre>
  
  <p>print output bStart button:</p>
  
  <pre><code>&lt;PyQt5.QtWidgets.QPushButton object at 0x7f089fddac18&gt;
  </code></pre>
  
  <p>print output buttons() function:</p>
  
  <pre><code>(&lt;PyQt5.QtWidgets.QPushButton object at 0x7f089fddac18&gt;, &lt;PyQt5.QtWidgets.QPushButton object at 0x7f089fddadc8&gt;)
  </code></pre>
  
  <p>Error bStop button click:</p>
  
  <pre><code>Traceback (most recent call last):
    File "gui.py", line 23, in &lt;lambda&gt;
      self.bStop.clicked.connect(lambda: self.hide_layout(buttons(self)))
    File "gui.py", line 28, in hide_layout
      a.hide()
  AttributeError: 'tuple' object has no attribute 'hide'
  </code></pre>