TypeError: 'str' object is not callable

如下代码:

点击(此处)折叠或打开

  1. class Person(object):
  2.     def __init__(self,name,age,race,nation,sex):
  3.         self.name = name
  4.         self.age = age
  5.         self.race = race
  6.         self.nation = nation
  7.         self.sex = sex
  8.         self.money = 0
  9.         self.workName = None
  10.         print "%s 的年龄是 %s ,是%s ,是%s 人,%s 的。" % (self.name,self.age,self.race,self.nation,self.sex)
  11.     
  12.     def love(self,name):
  13.         choice = raw_input("%s 是否爱 %s ?" % (self.name,name))
  14.         if choice == 'Y' or choice == 'y':
  15.             self.love = name
  16.             print "%s 爱上 %s " % (self.name,self.love)
  17.         else:
  18.             self.love = None
  19.             print "%s 不爱 %s " % (self.name,self.love)
  20.             
  21.             
  22. peter = Person("peter",26,'黄种',"中国","男")
  23. peter.love("liz")
  24. peter.love("liz")

错误信息:

点击(此处)折叠或打开

  1. peter 的年龄是 26 ,是黄种 ,是中国 人,男 的。
  2. peter 是否爱 liz ?y
  3. peter 爱上 liz
  4. Traceback (most recent call last):
  5. File "F:\python_src\Day4_hw\test.py", line 46, in
  6. peter.love("liz")
  7. TypeError: 'str' object is not callable
比较神奇的在于第一次调用peter实例的love方法不会报错,第二次调用才报错。
排查了不少时间,才发现是person类有问题,拥有love属性和love方法。
在python中,一个类不能有同名的属性和方法。
至于为什么不行,目前还不知道。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441616/viewspace-2152827/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31441616/viewspace-2152827/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值