Python之property用法

98 阅读1分钟
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