title: Access Class method and variable using self
body: <p>In below example <strong>Test</strong> class has two instance method and one classmethod</p>
  
  <p>In <strong>set_cls_var_1</strong> method I set class variable using self.</p>
  
  <p>In <strong>set_cls_var_2</strong> method I call class method using self.</p>
  
  <pre><code>   class Test():
  
          #class variable
          cls_var = 10
  
          def __init__(self):
             obj_var=20
  
          def set_cls_var_1(self,val):
              #second method to access class variable
              print "first "
              self.cls_var = val
  
          def set_cls_var_2(self):
              print "second"
              self.task(200)
  
          @classmethod
          def task(cls,val):
              cls.cls_var = val
  
  
  t=Test()
  
  #set class variable by first method
  t.set_cls_var_1(100)
  
  print Test.cls_var
  
  #set class variable by second method
  t.set_cls_var_2()
  
  print Test.cls_var
  </code></pre>
  
  <p><strong>Output</strong></p>
  
  <pre><code>first 
  10
  second
  200
  </code></pre>
  
  <p><strong>Expected Output</strong></p>
  
  <pre><code>first 
  100
  second
  200
  </code></pre>
  
  <p>My question is:
     why only classmethod can call by self, Why not class variable</p>