我收到错误....我知道我做错了什么,但不确定如何修复它。我明白我不能在一个整数中添加一个字符串......任何想法,我都会感激不尽!
self.variables['gas'] = 'gas'+add
TypeError: Can't convert 'int' object to str implicitly
我的代码:
class Cars:
def __init__(self, **kwargs):
self.variables = kwargs
def set_Variable(self, k, v):
self.variables[k] = v
def get_Variable(self, k):
return self.variables.get(k, None)
def add_gas(self, add, gas):
self.variables['gas'] = gas+add
def main():
mercedes = Cars(gas = 3)
print (mercedes.get_Variable('gas'))
print(mercedes.add_gas(4))
if __name__ == "__main__": main()
答案 0 :(得分:0)
你的方法add_gas需要两个参数,你只需要将一个参数传递给函数。此外,您正在打印返回值,但函数中没有返回。
这个对我有用:
class Cars:
def __init__(self, **kwargs):
self.variables = kwargs
def set_Variable(self, k, v):
self.variables[k] = v
def get_Variable(self, k):
return self.variables[k]
def add_gas(self, add):
self.variables['gas'] +=add
def main():
mercedes = Cars(gas = 3)
print (mercedes.get_Variable('gas'))
mercedes.add_gas(4)
print (mercedes.get_Variable('gas'))
print ('There are %s gallons of gas in the car.' % mercedes.get_Variable('gas'))
if __name__ == "__main__":
main()
答案 1 :(得分:0)
因此,我发现您的代码存在两个独立问题:
在您的错误消息中显示了以下行:
self.variables['gas'] = 'gas'+add
在您的代码中,行是这样的:
self.variables['gas'] = gas+add
这是两个不同的含义。第一个尝试将变量add
连接到字符串'gas'
,这将失败,因为add
是一个整数,Python不会隐含地将整数转换为字符串(错误告诉你)。所以你想做'gas' + str(add)
。
在main
函数中,您可以像这样调用add_gas
方法:
mercedes.add_gas(4)
但实际上您使用两个参数[{1}}和add
定义了该方法,因此这将失败。
我认为您想要做的是在调用方法时将gas
值增加self.variables['gas']
,因此您需要编写如下所示的方法:
add
请注意,您可以使用def add_gas(self, add):
self.variables['gas'] = self.variables['gas'] + add
运算符缩短它:
+=
最后,我不知道为什么你会想要为你的语言环境实例变量使用字典,但除非你有充分的理由这样做,为什么不为你的汽车定义一个def add_gas(self, add):
self.variables['gas'] += add
属性类型?