在Python中,property
函数是一个内置函数,用于创建可读写的属性。
property
函数可以用作装饰器,将一个方法转换为相应的可读写属性。它接受四个参数:fget
、fset
、fdel
和doc
。
fget
:获取属性值的函数。它将在访问属性时被调用。
fset
:设置属性值的函数。它将在给属性赋值时被调用。
fdel
:删除属性值的函数。它将在使用del
关键字删除属性时被调用。
doc
:属性的文档字符串。
以下是property
函数的基本用法示例:
class MyClass:
def __init__(self):
self._x = 0
# 定义可读写的属性x
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
# 创建实例
obj = MyClass()
# 访问属性
print(obj.x) # 输出: 0
# 设置属性
obj.x = 10
# 再次访问属性
print(obj.x) # 输出: 10
# 删除属性
del obj.x
# 再次访问属性
print(obj.x) # 抛出 AttributeError: 'MyClass' object has no attribute '_x'
在上面的示例中,通过@property
装饰器将x
方法转换为可读写的属性。@x.setter
装饰器定义了设置属性值的方法,@x.deleter
装饰器定义了删除属性值的方法。