Python 中的 property()
函数 创建并返回一个属性对象。属性是允许用户为类属性定义 getter、setter 和 deleter 方法的特殊属性。此函数通常用作装饰器,以便以更具可读性和简洁性的方式定义属性。
参数值
参数 | 说明 |
---|---|
fget | 用于检索属性值的方法 |
fset | 用于设置属性值的方法 |
fdel | 用于删除属性值的方法 |
doc | 属性的文档字符串 |
返回值
property()
函数返回一个 property
对象,该对象可以封装 getter、setter 和 deleter 方法。
如何在 Python 中使用 property()
示例 1
property()
函数为新式类返回一个属性属性。它采用四个可选参数:fget
、fset
、fdel
和 doc
。
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