# 只读property的实际应用
class Square:
def __init__(self,width: int):
self.__width = width
self.__area = None
'''
# @property 将area函数在外部调用时当做属性来运用,
但是如果多次调用这个函数,每次都会进行计算会影响性能
可以在构造函数中定义__area属性为空,
'''
@property
def area(self):
if self.__area is None: # 每次调用时进行判断,如果不为空,则直接从缓存得到数据返回
self.__area = self.__width * self.__width
return self.__area
@property
def width(self):
return self.__width
@width.setter
def width(self,width: int):
self.__width = width
self.__area = None # 当从外部对width属性进行更改后,将__area清空,这样可以area调用时,使用新的参数重新进行计算
square = Square(5)
print(square.area)
square.width = 6
print(square.area)
python 只读property的实际应用
最新推荐文章于 2024-10-18 00:00:00 发布