#!/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