如下代码:
错误信息:
比较神奇的在于第一次调用peter实例的love方法不会报错,第二次调用才报错。
排查了不少时间,才发现是person类有问题,拥有love属性和love方法。
在python中,一个类不能有同名的属性和方法。
至于为什么不行,目前还不知道。
点击(此处)折叠或打开
- 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
排查了不少时间,才发现是person类有问题,拥有love属性和love方法。
在python中,一个类不能有同名的属性和方法。
至于为什么不行,目前还不知道。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441616/viewspace-2152827/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31441616/viewspace-2152827/