Python @classmethod decorator and static method All In One
修饰器/装饰器;静态方法;实例方法
# cls
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
# 实例方法
def calculate_area(self):
return self.width * self.height
# 类方法 (类似 js 的 static method)
@classmethod
def new_square(cls, side_length):
return cls(side_length, side_length)
# 类方法
square = Rectangle.new_square(5)
print("类方法", square.calculate_area())
# 类实例方法
s = Rectangle(3, 3)
print("类实例方法", s.calculate_area())
"""
$ py3 ./classmethod-decorator.py
类方法 25
类实例方法 9
"""