class statement by assigning a value to a variable. This variable then becomes the static data member. def statement needs to be prefixed with @staticmethod. class C:
#
# Define a class variable (aka static member):
#
creation_counter = 0
def __init__(self):
#
# increment
#
C.creation_counter += 1
#
# Assign a value to self.created which
# effectively creates an instance variable:
#
self.created = C.creation_counter
#
# Define a static method. Note the «@staticmethod»
#
@staticmethod
def printCreationCounter():
print('The current value of creation_counter is {}'.format(C.creation_counter))
#
# Define an instance-method:
#
def printCreated(self):
print('This instance has creation number {}'.format(self.created))
C.printCreationCounter()
#
# The current value of creation_counter is 0
obj_1 = C()
obj_2 = C()
C.printCreationCounter()
#
# The current value of creation_counter is 2
obj_3 = C()
obj_3.printCreated()
#
# This instance has creation number 3
obj_1.printCreated()
#
# This instance has creation number 1
obj_2.printCreated()
#
# This instance has creation number 2