
# person2.py class person: def __init__(self,name='', age=0): self._name = name self._age = age @property def age(self): return self._age @age.setter def age(self, age): if 0 < age <= 150: self._age = age def set_age(self, age): if 0 < age <= 150: self._age = age def __str__(self): return "person(%s , %s)" % (self._name, self._age) def __repr__(self): return str(self) 然后
>>> import person2 as pe >>> p = pe.person('Lia' , 20) >>> p person(Lia, 20) >>> p.age 20 >>> p.age = 33 >>> p.age 33 >>> p person( Lia, 20) # 为什么这里不会改变? >>> p.set_age(100) >>>p person(Lia, 100) >>>p.age 33 # 不是100 么? 书上用的 python3 我在 fedora 上用的 python2.7
是这个原因吗?
1 regex 2015-01-08 18:42:44 +08:00 python3下两个问题都不存在。。 输出为person( Lia, 33)和100 |
2 lcqtdwj 2015-01-08 19:00:50 +08:00 class person(object) |