1. property动态属性
@property装饰器可以把一个类函数变成一个属性描述符, 能够像访问类的属性一样访问该函数
代码实例
class Person(object):
def __init__(self, age, name):
self._age = age
self.name = name
@property
def age(self):
return 10
if __name__ == '__main__':
p = Person(20, '小明')
print(p._age)
print(p.age)
运行结果
20
10
2. 使用@setter为动态属性赋值
@动态属性名.setter装饰后的函数可以通过属性赋值的方式来给动态属性赋值
代码实例
class Person(object):
def __init__(self, age, name):
self._age = age
self.name = name
@property
def age(self):
return 10
@age.setter
def age(self, value):
self._age = value
if __name__ == '__main__':
p = Person(20, '小明')
p.age = 30
# 通过直接赋值的方式来调用age方法为_age属性赋值
print(p._age)
print(p.age)
运行结果
30
10
网友评论