class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width
@property
def area(self):
return self.length * self.width
rectangle = Rectangle(5, 2)
print(rectangle.area)
如果在init中定义属性area,那么用户可以随便的修改。如何将area暴露出来,又不允许用户进行修改呢?
可以使用property,可以将方法当成属性来使用。而且不必担心对其进行赋值操作
rectangle.area = 12
AttributeError: can't set attribute