|
发表于 2023-3-2 11:10:28
|
显示全部楼层
- class Lazyproperty:
- def __init__(self, func):
- self.func = func
- def __get__(self, instance, owner):
- if instance == None:
- return self
- res = self.func(instance)
- setattr(instance, self.func.__name__, res)
- return instance.area # 注意这行
- class Room:
- def __init__(self, name, width, length):
- self.name = name
- self.width = width
- self.length = length
-
- @Lazyproperty
- def area(self):
- return self.width * self.length
- r1 = Room("客厅", 5, 4)
- print(Room.__dict__)
- print(r1.area)
- print(Room.area)
复制代码 |
|