Static Methods and Class Methods
Instance Methods: The most common method type. Able to access data and properties unique to each instance.
Static Methods: Cannot access anything else in the class. Totally self-contained code.
Class Methods: Can access limited methods in the class. Can modify class specific details.
class Vehicle(object):
"""Document String: Define a Vehicle class"""
count = 0; # static variable
def info():
return Vehicle.count;
info = staticmethod(info) # static function
def __init__(self, brand, year):
self._brand = brand;
self._year = year;
Vehicle.count += 1;
def __str__(self):
return self._brand+' '+str(self._year)
def __del__(self):
Vehicle.count -= 1;
def main():
vehicles = [Vehicle("Buick", 1998), Vehicle("Lincoln", 1999)]
print(Vehicle.info())
print(vehicles[1].info())
if __name__ == '__main__':
main()
class Vehicle(object):
"""Document String: Define a Vehicle class"""
count = 0;
@staticmethod
def info():
return Vehicle.count;
@classmethod
def cla(cls):
print('Call class method ...')
print(Vehicle.info()) # class methods can call static methods
def __init__(self, brand, year):
self._brand = brand;
self._year = year;
Vehicle.count += 1;
def __str__(self):
return self._brand+' '+str(self._year)
def __del__(self):
Vehicle.count -= 1;
def main():
vehicles = [Vehicle("Buick", 1998), Vehicle("Lincoln", 1999)]
print(Vehicle.info()) # call static method
print(vehicles[1].info())
Vehicle.cla() # call class method
if __name__ == '__main__':
main()
Reference