Python装饰器property的使用
- property的装饰器方式使用
class Person(object):
def __init__(self):
self.__age = 0
@property # 把age方法当属性使用,获取age属性时会调用下面的方法
def age(self):
print('获取年龄属性')
return self.__age
@age.setter # 把age方法当属性使用,设置age时调用下面的方法
def age(self,new_age):
print('设置年龄了')
self.__age = new_age
chris = Person()
print(chris.age)
chris.age = 120
print(chris.age)
- property的类属性方式使用
class Person(object):
def __init__(self):
self.__age = 0
def get_age(self):
print('获取年龄属性')
return self.__age
def set_age(self,new_age):
print('设置年龄了')
self.__age = new_age
# 类属性的property方式
age = property(get_age,set_age)
chris = Person()
print(chris.age)
chris.age = 120
print(chris.age)
property将方法改为属性使用,利于私有属性的设置和显示,不用频繁的使用类的函数