Python property 介绍
文章目录
简介
最近看 Effective Python 第四章元类及属性。其中经常出现@property
装饰器。因此总结一下。我理解@property
的一个比较直观的好处是可以创建只读的属性,这样可以防止属性呗随意更改。
Property 是 Built-in Functions
class property(fget=None, fset=None, fdel=None, doc=None)
"""
Return a property attribute.
fget is a function for getting an attribute value. fset is a function for setting an attribute value. fdel is a function for deleting an attribute value. And doc creates a docstring for the attribute.
"""
注意fget, fset, fdel
都是函数,用来读取属性,对属性赋值和删除属性。doc
用于创建该属性的文档。
直接使用时,如下所示
class C:
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx,