当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。