# 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 1
python3下两个问题都不存在。。
输出为person( Lia, 33)和100 |
2
lcqtdwj 2015-01-08 19:00:50 +08:00
class person(object)
|