用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。