<接上一篇>python类的定义及装饰器
@dataclass
class Rectangle:
width: float
height: float
# 派生字段,不参与初始化
area: float = field(init=False)
perimeter: float = field(init=False)
def __post_init__(self):
self.area = self.width * self.height
self.perimeter = 2 * (self.width + self.height)
r = Rectangle(5, 3)
print(r.area) # 15.0
print(r.perimeter) # 16.0

浙公网安备 33010602011771号