Python property() 内置函数

来自 Python 3 文档

返回一个属性(property)属性。

简介

property() 函数用于创建属性(property)属性。属性是一种特殊的属性,它具有 getter、setter 和 delete 方法。这允许您在获取、设置或删除属性值时添加逻辑。

更常见的方法是使用 @property 装饰器,它是使用 property() 的更便捷方式。

示例

这是一个使用 property() 创建只读属性的示例:

class Person:
    def __init__(self, name):
        self._name = name

    def get_name(self):
        print("Getting name")
        return self._name

    # 创建一个属性
    name = property(get_name)

p = Person("John")
print(p.name)  # 这会调用 get_name()
Getting name
John

注意:p.name = "Jane" 会引发 AttributeError,因为它没有 setter。

这是使用 @property 装饰器的更常见做法:

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print("Getting name")
        return self._name

p = Person("John")
print(p.name)
Getting name
John

相关链接