title: [Python]Calling method(self)
body: <p>I can not understand following commented line.
  It's a python program.</p>
  
  <hr>
  
  <pre><code>class B:
   def bbb(self):
      method = self.commands[0]
      method(self) #I can't umderstand this line
  
  class A(B):
      def aaa(self):
          print 'aaa was called'
      commands = [aaa]
  
  c = A()
  c.bbb()
  </code></pre>
  
  <hr>
  
  <p>Output:
  aaa was called</p>
  
  <hr>
  
  <p>I think above aaa method takes no arguments.
  But to run this code, I need to pass "self" to aaa argument. Why? Are there any docs explaining this?What category this problem belongs?</p>
  
  <p>Any simple codes are very welcome.
  Because my English skill is too low.
  So improving this question is welcome too.</p>
  
  <p>I encountered this problem, when I was reading cpython/Lib/distutils/cmd.py:Command.get_sub_commands().</p>
  
  <p>Thank you for reading.</p>