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