如下代码:
-
class Person(object):
-
def __init__(self,name,age,race,nation,sex):
-
self.name = name
-
self.age = age
-
self.race = race
-
self.nation = nation
-
self.sex = sex
-
self.money = 0
-
self.workName = None
-
print "%s 的年龄是 %s ,是%s ,是%s 人,%s 的。" % (self.name,self.age,self.race,self.nation,self.sex)
-
-
def love(self,name):
-
choice = raw_input("%s 是否爱 %s ?" % (self.name,name))
-
if choice == 'Y' or choice == 'y':
-
self.love = name
-
print "%s 爱上 %s " % (self.name,self.love)
-
else:
-
self.love = None
-
print "%s 不爱 %s " % (self.name,self.love)
-
-
-
peter = Person("peter",26,'黄种',"中国","男")
-
peter.love("liz")
-
peter.love("liz")
错误信息:
-
peter 的年龄是 26 ,是黄种 ,是中国 人,男 的。
-
peter 是否爱 liz ?y
-
peter 爱上 liz
-
Traceback (most recent call last):
-
File "F:\python_src\Day4_hw\test.py", line 46, in
-
peter.love("liz")
-
TypeError: 'str' object is not callable
比较神奇的在于第一次调用peter实例的love方法不会报错,第二次调用才报错。
排查了不少时间,才发现是person类有问题,拥有love属性和love方法。
在python中,一个类不能有同名的属性和方法。
至于为什么不行,目前还不知道。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31441616/viewspace-2152827/
,如需转载,请注明出处,否则将追究法律责任。