當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python property()用法及代碼示例

在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()方法,我們可以修改我們的類並實現值約束,而無需對客戶端代碼進行任何更改。這樣實現是向後兼容的。



相關用法


注:本文由純淨天空篩選整理自shubham tyagi 4大神的英文原創作品 Python | property() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。