1. @property 介绍
@property是Python内置的一种装饰器。将类方法转换为类属性,可以用 . 直接获取属性值或者对属性进行赋值。
2. 使用示例
代码示例:
class People(object):
def __init__(self, name, age):
self.name = name
self.age = age
# 私有属性
self.__number = 0
@property
def number(self):
return self.__number
@number.setter # setter 用于设置私有属性值
def number(self, value):
self.__number = value
@number.deleter # deleter 用于删除私有属性
def number(self):
del self.__number
if __name__ == '__main__':
p1 = People('张三', 22)
# 调用类中@property装饰number函数,获取类的私有属性self.__numbe的值。
# 此时就将类方法转换为类属性,直接p1.number访问方法,而不用p1.number()访问
num = p1.number
print(num)
# 调用类中@number.setter装饰的number函数,设置私有属性self.__number的值
p1.number = 666
print(p1.number)
# 调用类中@number.deleter装饰的number函数,设置私有属性self.__number
del p1.number
输出结果:
0
666