我是编程新手,正在学习Python。代码应该非常简单。目标应该是实现一个计算器,在数字之间进行加法运算。 它返回以下错误:
init()缺少1个必需的位置参数:“number\u 2”
就像它把self当作一个参数,但我不知道为什么。 我使用的是Linux和ubuntu19操作系统。 这是我的密码:
class Calculator:
def __init__(self, number_1, number_2):
self.number_1=number_1
self.number_2=number_2
def add(self):
print(f"{number_1}+{number_2}={number_1+number_2}")
if __name__=="__main__":
c=Calculator('Casio')
c.add(2,3)
初始化对象
'c'
时,运行的是init
方法,因此需要将这两个参数传递给init
方法。因此,在创建对象时需要同时给出'number_1'
和'number_2'
。您只传入了'Casio'
,python将其解释为'number_1'
。Python还解释了没有'number_2'
。以下是一些解决方案: 1:可以使add()函数具有init
具有的两个参数('number_1'
和'number_2'
),并且init
的唯一参数是self
和'name'
。然后,您可以让init
方法只执行self.name = name
,而不执行其他操作。2:如果不输入参数'number_1'
和'number_2'
,则可以通过为参数设置默认变量使参数'number_1'
和'number_2'
可选:它在这里不是将
self
作为参数读取,而是将'Casio'
存储为number_1
。当错误消息读取时,它丢失了number 2
。如果希望add()
能够获取任意值,则需要将它们作为参数添加到该方法中,而不是添加到__init__()
函数中必须将参数传递给add函数,而不是传递给实例化类的
__init__
相关问题 更多 >
编程相关推荐