title: Pointers to static methods in Python
body: <p>Why is it that in the following code, using a class variable as a method pointer results in unbound method error, while using an ordinary variable works fine:</p>
  
  <pre><code>class Cmd: 
      cmd = None
  
      @staticmethod   
      def cmdOne():
          print 'cmd one'
  
      @staticmethod   
      def cmdTwo():
          print 'cmd two'
  
  def main():
      cmd = Cmd.cmdOne
      cmd() # works fine
  
      Cmd.cmd = Cmd.cmdOne        
      Cmd.cmd() # unbound error !!
  
  if __name__=="__main__":
      main()
  </code></pre>
  
  <p>The full error: </p>
  
  <pre><code>TypeError: unbound method cmdOne() must be called with Cmd instance as 
             first argument (got nothing instead)
  </code></pre>