# 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
是这个原因吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.