Python __init_u3;()缺少1个必需的位置参数,它将self作为参数读取
我是编程新手,正在学习Python。代码应该非常简单。目标应该是实现一个在数字之间进行加法运算的计算器。 它返回以下错误: init()缺少1个必需的位置参数:“number_2” 这就像它把self作为一个参数,但我不明白为什么。 我使用LinuxUbuntu19作为操作系统。 这是我的密码:Python __init_u3;()缺少1个必需的位置参数,它将self作为参数读取,python,oop,Python,Oop,我是编程新手,正在学习Python。代码应该非常简单。目标应该是实现一个在数字之间进行加法运算的计算器。 它返回以下错误: init()缺少1个必需的位置参数:“number_2” 这就像它把self作为一个参数,但我不明白为什么。 我使用LinuxUbuntu19作为操作系统。 这是我的密码: class Calculator: def __init__(self, number_1, number_2): self.number_1=number_1
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)
它不是将
self
作为参数读取,而是将其存储为number\u 1
的'Casio'
。当错误消息读取时,它丢失了编号2。如果希望add()
能够获取任意值,则需要将它们作为参数添加到该方法中,而不是添加到\uuuu init\uuu()
函数中。必须将参数传递给add函数,而不是实例化该类的\uuu init\uuuu
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)
初始化对象
'c'
时,运行的是init
方法,因此需要将这两个参数传递给init
方法。因此,在创建对象时,需要同时给出'number\u 1'
和'number\u 2'
。您只传入了'Casio'
,python将其解释为'number\u 1'
。Python还解释说没有“number\u 2”
。以下是一些解决方案:
1:您可以使add()函数具有init
具有的两个参数('number\u 1'
和'number\u 2'
),并且只有init
的参数是self
和'name'
。然后,您可以让init
方法只执行self.name=name
而不执行其他操作。2:如果不输入参数,可以通过为参数设置默认变量,使参数'number\u 1'
和'number\u 2'
可选:
def __init__(self, number_1="1", number_2="2"):
这是一个比编写一个没有代码的代码更好的解释(竖起大拇指!)谢谢你的解释!非常感谢你们,伙计们!