@classmethod decorator in python code example
Example 1: python: @classmethod
class Float:
def __init__(self, amount):
self.amount = amount
def __repr__(self):
return f'<Float {self.amount:.3f}>'
@classmethod
def from_sum(cls, value_1, value_2):
return cls(value_1 + value_2)
class Dollar(Float):
def __init__(self, amount):
super().__init__(amount)
self.symbol = '€'
def __repr__(self):
return f'<Euro {self.symbol}{self.amount:.2f}>'
print(Dollar.from_sum(1.34653, 2.49573))
Example 2: python classmethod
In [20]: class MyClass:
...: @classmethod
...: def set_att(cls, value):
...: cls.att = value
...:
In [21]: MyClass.set_att(1)
In [22]: MyClass.att
Out[22]: 1
In [23]: obj = MyClass()
In [24]: obj.att
Out[24]: 1
In [25]: obj.set_att(3)
In [26]: obj.att
Out[26]: 3
In [27]: MyClass.att
Out[27]: 3