Class variables

 
#!/usr/bin/env python3

class myClass:
    #
    # Variables declared inside the class definition, 
    # but not inside a method are class or static variables:
    #
    i = 7

    def __init__( self):
        print( "__init__(): self.i %d " % self.i)
        print( "__init__(): myClass.i %d " % myClass.i)
        return
    
def main():
    o = myClass()
    print( "main()")
    print( "  myClass.i %d" % myClass.i)
    print( "  o.i %d" % o.i)
    #
    # assigning the instance variable does not change the class variable
    #
    o.i = 8
    print( "  >> o.i = 8")
    print( "  myClass.i %d" % myClass.i)
    print( "  o.i %d" % o.i)
    #
    # assigning the class variable does not change the instance variable
    #
    myClass.i = 9
    print( "  >> myClass.i = 9")
    print( "  myClass.i %d" % myClass.i)
    print( "  o.i %d" % o.i)
    return 

if __name__ == "__main__":
    main()


Ouptut: 
__init__(): self.i 7 
__init__(): myClass.i 7 
main()
  myClass.i 7
  o.i 7
  >> o.i = 8
  myClass.i 7
  o.i 8
  >> myClass.i = 9
  myClass.i 9
  o.i 8