跳至主要内容

property()

Python 中的 property() 函数 创建并返回一个属性对象。属性是允许用户为类属性定义 getter、setter 和 deleter 方法的特殊属性。此函数通常用作装饰器,以便以更具可读性和简洁性的方式定义属性。

参数值

参数 说明
fget

用于检索属性值的方法

fset

用于设置属性值的方法

fdel

用于删除属性值的方法

doc

属性的文档字符串

返回值

property() 函数返回一个 property 对象,该对象可以封装 getter、setter 和 deleter 方法。

如何在 Python 中使用 property()

示例 1

property() 函数为新式类返回一个属性属性。它采用四个可选参数:fgetfsetfdeldoc

class Celsius:
    def __init__(self, temperature=0):
        self._temperature = temperature
    def get_temperature(self):
        return self._temperature
    def set_temperature(self, value):
        if value < -273.15:
            raise ValueError('Temperature below -273.15 is not possible')
        self._temperature = value
    temperature = property(get_temperature, set_temperature)
示例 2

property() 函数也可以用作装饰器。在这种情况下,getter 方法直接返回该值,并且没有定义 setter 方法。

class Circle:
    def __init__(self, radius):
        self._radius = radius
    @property
    def area(self):
        return 3.14 * self._radius**2
示例 3

property() 函数仅可与 getter 方法一起使用,以创建只读属性。

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