用法:
class property(fget=None, fset=None, fdel=None, doc=None)
返回一个属性属性。
fget
是获取属性值的函数。fset
是用于设置属性值的函数。fdel
是删除属性值的函数。doc
为该属性创建一个文档字符串。一个典型的用途是定义一个托管属性
x
: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, "I'm the 'x' property.")
如果
c
是C
的实例,则c.x
将调用 getter,c.x = value
将调用 setter,而del c.x
将调用 deleter。如果给定,
doc
将是属性属性的文档字符串。否则,该属性将复制fget
的文档字符串(如果存在)。这使得使用property()
作为装饰器可以轻松创建只读属性:class Parrot: def __init__(self): self._voltage = 100000 @property def voltage(self): """Get the current voltage.""" return self._voltage
@property
装饰器将voltage()
方法转换为具有相同名称的只读属性的 “getter”,并将voltage
的文档字符串设置为“获取当前电压”。属性对象具有
getter
、setter
和deleter
方法,这些方法可用作创建属性副本的装饰器,并将相应的访问器函数设置为装饰函数。最好用一个例子来解释:class C: def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x
此代码与第一个示例完全相同。确保为附加函数提供与原始属性相同的名称(在本例中为
x
。)返回的属性对象还具有与构造函数参数对应的属性
fget
、fset
和fdel
。在 3.5 版中更改:属性对象的文档字符串现在是可写的。
相关用法
- Python property()用法及代码示例
- Python profile.Profile用法及代码示例
- Python calendar prmonth()用法及代码示例
- Python calendar pryear()用法及代码示例
- Python print()用法及代码示例
- Python string printable()用法及代码示例
- Python pandas.arrays.IntervalArray.is_empty用法及代码示例
- Python pyspark.pandas.Series.dropna用法及代码示例
- Python pyspark.pandas.groupby.SeriesGroupBy.unique用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
- Python pyspark.pandas.DataFrame.hist用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
- Python pyspark.pandas.Series.dt.weekday用法及代码示例
- Python pyspark.pandas.DataFrame.select_dtypes用法及代码示例
- Python pyspark.pandas.isnull用法及代码示例
- Python pyspark.pandas.Series.hasnans用法及代码示例
- Python pandas.DataFrame.combine_first用法及代码示例
- Python pyspark.pandas.Series.rmul用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 property。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。