【问题标题】:TypeError: __init__() missing 2 required positional arguments: 'arr' and 'n'类型错误:__init__() 缺少 2 个必需的位置参数:“arr”和“n”
【发布时间】:2021-09-05 21:46:20
【问题描述】:

这是python中缺少数字的问题。

class Missing:

    n = int(input())
    arr = list(map(int,input().split(" "))) 

    def __init__(self,arr,n):
        self.arr = arr
        self.n = n
    
    def MissingNumber(self):
        self.res = self.n*(self.n+1)/2
        self.sum_array = sum(self.arr)
        return "Missing no. is ",self.res-self.sum_array

Obj = Missing()
Obj.MissingNumber()

我收到此错误。 有人能解决吗?

Obj = Missing()
TypeError: __init__() missing 2 required positional arguments: 'arr' 
and 'n'

【问题讨论】:

  • Obj = Missing(n,arr)
  • 您必须提供您在def __init__ 中指定的两个参数arrn。而且你不应该尝试在你的类定义中初始化它们。
  • 不工作,'NameError: name 'n' is not defined'
  • @leaf_yakitori 你能再写一遍整个代码并粘贴到这里吗?
  • @Ajay Kathwate 已经在答案中添加了整个代码

标签: python class typeerror


【解决方案1】:

您需要将输入放在类之外,并在Obj = Missing(arr,n)创建实例时分配它

代码:

class Missing:
    def __init__(self,arr,n):
        self.arr = arr
        self.n = n
        
    def MissingNumber(self):
        self.res = self.n*(self.n+1)/2
        self.sum_array = sum(self.arr)
        return "Missing no. is ",self.res-self.sum_array
        
n = int(input())
arr = list(map(int,input().split(" "))) 
Obj = Missing(arr,n) 
print(Obj.MissingNumber())

结果:

5
1 2 3 4 5
('Missing no. is ', 0.0)

【讨论】:

    【解决方案2】:

    您的构造函数需要两个参数。你需要在它运行之前分配它。

    你需要在类对象之外分配 n 和 arr

    class Missing:
        def __init__(self,arr,n):
            self.arr = arr
            self.n = n
        
        def MissingNumber(self):
            self.res = self.n*(self.n+1)/2
            self.sum_array = sum(self.arr)
            return "Missing no. is ",self.res-self.sum_array
    
    if __name__ == '__main__':
        n = int(input())
        arr = list(map(int,input().split(" "))) 
        Obj = Missing(n,arr)
        Obj.MissingNumber()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-13
      • 2022-01-11
      • 2021-07-06
      • 2023-03-19
      • 2020-01-29
      • 2017-10-30
      • 2021-09-29
      相关资源
      最近更新 更多