如果@property是属性赋值,那@getter就不用了吗?
来源:8-2 __getattr__、__getattribute__魔法函数

Demin
2020-02-18
好奇的输入@getter试了下,效果是一样的
from datetime import date,datetime
class User:
def __init__(self,name,birthday):
self.name=name
self.birthday=birthday
self._age=0
@property
def age(self):
# return datetime.now().year-self.birthday.year
return self._age
@age.setter
def age(self,value):
self._age=value
@age.getter
def age(self):
return self._age+3
if __name__=="__main__":
user=User("bobby",date(year=1987,month=1,day=1))
user.age=32
print(user.age)
写回答
1回答
-
Demin
提问者
2020-02-18
谷歌了下,也看了好多例子。发现@property是把类方法变为可读属性,就是说里面的值是如果固定的(比如字符串),那就不能赋值。需要通过@getter才能赋值。
012020-02-18
相似问题