在Python中,Property()函數的主要目的是創建類的屬性。
用法: property(fget, fset, fdel, doc)
參數:
fget()-用於獲取屬性的值
fset()-用於設置屬性的值
fdel()-用於刪除屬性值
doc()-包含屬性文檔(文檔字符串)的字符串
返回:從給定的getter,setter和deleter返回屬性屬性。
注意:
- 如果未提供任何參數,則property()方法將返回不包含任何getter,setter或Deleter的基本屬性屬性。
- 如果未提供doc,則property()方法采用getter函數的文檔字符串。
範例1:使用property()方法
# Python program to explain property() function
# Alphabet class
class Alphabet:
def __init__(self, value):
self._value = value
# getting the values
def getValue(self):
print('Getting value')
return self._value
# setting the values
def setValue(self, value):
print('Setting value to ' + value)
self._value = value
# deleting the values
def delValue(self):
print('Deleting value')
del self._value
value = property(getValue, setValue, delValue, )
# passing the value
x = Alphabet('GeeksforGeeks')
print(x.value)
x.value = 'GfG'
del x.value
輸出:
Getting value GeeksforGeeks Setting value to GfG Deleting value
使用裝飾器:
裝飾器的主要工作是用於將函數添加到現有代碼中。也稱為元編程,它是程序的一部分,試圖在編譯時修改程序的另一部分。
範例2:使用@property裝飾器
# Python program to explain property()
# function using decorator
class Alphabet:
def __init__(self, value):
self._value = value
# getting the values
@property
def value(self):
print('Getting value')
return self._value
# setting the values
@value.setter
def value(self, value):
print('Setting value to ' + value)
self._value = value
# deleting the values
@value.deleter
def value(self):
print('Deleting value')
del self._value
# passing the value
x = Alphabet('Peter')
print(x.value)
x.value = 'Diesel'
del x.value
輸出:
Getting value Peter Setting value to Diesel Deleting value
使用@property裝飾器的方式與property()方法相同。
首先,指定value()方法也是Alphabet的屬性,然後,我們使用該屬性值來指定設置器和刪除器。注意,相同的方法value()用於不同的定義來定義getter,setter和deleter。每當我們使用x.value時,它都會在內部調用適當的getter,setter和deleter。
應用範圍:
通過使用property()方法,我們可以修改我們的類並實現值約束,而無需對客戶端代碼進行任何更改。這樣實現是向後兼容的。
相關用法
- Python oct()用法及代碼示例
- Python hex()用法及代碼示例
- Python now()用法及代碼示例
- Python int()用法及代碼示例
- Python dir()用法及代碼示例
- Python tell()用法及代碼示例
- Python ord()用法及代碼示例
- Python map()用法及代碼示例
- Python id()用法及代碼示例
- Python sum()用法及代碼示例
- Python cmp()用法及代碼示例
- Python fsum()用法及代碼示例
注:本文由純淨天空篩選整理自shubham tyagi 4大神的英文原創作品 Python | property() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。