我无法弄清楚为什么会收到错误:TypeError: Can't convert 'int' object to string implicity
这是该课程的相关代码:
class Pig():
def __init__(self, name, age, weight, value):
self.name = name
self.age = age
self.weight = weight
self.value = value
def runAndGainValue(self, value):
self.value += value #This is where the error occur.
def __str__(self):
a = self.name + " "
a += str(self.value) + " "
return a
这是主程序代码的一部分:
elif work == "2":
yourfarm.printAnimals()
print ("blablablabla")
for pig in p:
pig.runAndGainValue(5)
yourfarm.printAnimals()
我无法弄清楚为什么会出现这个错误。我已经尝试过搜索它,但我是编程新手,所以我在解释一个完全不同的代码但遇到同样的问题时遇到了很多麻烦。非常感谢你的帮助。
答案 0 :(得分:2)
您已将猪的value
设置为字符串,然后当您调用pig.runAndGainValue(5)
时,您尝试将整数添加到字符串中:
def runAndGainValue(self, value):
self.value += value
这引发了异常,因为Python字符串不会隐式转换为数字,即使它们的值可以解释为数字:
>>> '10' + 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
创建Pig
时,请始终确保value
为整数。也许您需要在初始化程序中显式转换:
def __init__(self, name, age, weight, value):
self.name = name
self.age = int(age)
self.weight = int(weight)
self.value = int(value)
或只是确保您的输入是整数。