title: calling classmethod using 'self'?
body: <pre><code>class Hello:
      def load(self):
          self.open('World')
      @classmethod
      def open(cls,print_string):
          print 'Hello ' + print_string
  
  
  class Hello:
      def load(self):
          Hello.open('World')
      @classmethod
      def open(cls,print_string):
          print 'Hello ' + print_string
  </code></pre>
  
  <p>I am finding difficult to understand from above two classes different style of calling class method. One uses self and another class name while calling, when should one use first and when should the second be used?</p>
  
  <p>Good explanation will really clarify <code>@classmethod</code> concept.</p>