Python TypeError:chunkIt()接受2个位置参数,但给出了3个

Python TypeError:chunkIt()接受2个位置参数,但给出了3个,python,class,console,Python,Class,Console,当我尝试在此类游戏中运行self.chunkIt时,我收到以下错误: Traceback (most recent call last): File "C:\Users\Araújo\Desktop\hq_player.py", line 128, in <module> g.new_question([1,2]) File "C:\Users\Araújo\Desktop\hq_player.py", line 84, in new_question pri

当我尝试在此类游戏中运行self.chunkIt时,我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\Araújo\Desktop\hq_player.py", line 128, in <module>
    g.new_question([1,2])
  File "C:\Users\Araújo\Desktop\hq_player.py", line 84, in new_question
    print(self.chunkIt(['1','2'],2))
TypeError: chunkIt() takes 2 positional arguments but 3 were given
回溯(最近一次呼叫最后一次):
文件“C:\Users\Araújo\Desktop\hq_player.py”,第128行,在
g、 新问题([1,2])
文件“C:\Users\Araújo\Desktop\hq_player.py”,第84行,新问题
打印(self.chunkIt(['1','2'],2))
TypeError:chunkIt()接受2个位置参数,但给出了3个
若尝试在控制台中单独运行它,它就可以正常工作。 为什么它要传递3个参数? 班级游戏: definit(自我、数字问题、设备): self.number\u问题=number\u问题 self.devices=设备 self.question=0

     def new_question(self,options):
         print(self.chunkIt(['1','2'],2))

      def chunkIt(seq, num):  
        avg = len(seq) / float(num)
        out = []
        last = 0.0

        while last < len(seq):
            out.append(seq[int(last):int(last + avg)])
            last += avg
        return out
def新问题(自我,选项):
打印(self.chunkIt(['1','2'],2))
def chunkIt(序号,数字):
平均值=长度(顺序)/浮动(数量)
out=[]
last=0.0
而最后一个
您忘记将
self
添加到
chunkIt
方法:

 def new_question(self,options):
     print(self.chunkIt(['1','2'],2))

 def chunkIt(self, seq, num):  
     avg = len(seq) / float(num)
     out = []
     last = 0.0

     while last < len(seq):
         out.append(seq[int(last):int(last + avg)])
         last += avg
     return out
def新问题(自我,选项):
打印(self.chunkIt(['1','2'],2))
def chunkIt(self、seq、num):
平均值=长度(顺序)/浮动(数量)
out=[]
last=0.0
而最后一个
您忘记将
self
添加到
chunkIt
方法:

 def new_question(self,options):
     print(self.chunkIt(['1','2'],2))

 def chunkIt(self, seq, num):  
     avg = len(seq) / float(num)
     out = []
     last = 0.0

     while last < len(seq):
         out.append(seq[int(last):int(last + avg)])
         last += avg
     return out
def新问题(自我,选项):
打印(self.chunkIt(['1','2'],2))
def chunkIt(self、seq、num):
平均值=长度(顺序)/浮动(数量)
out=[]
last=0.0
而最后一个
self是第三个参数,因为我假设这些方法位于一个类中,该类给出了调用self的新问题

  def chunkIt(self, seq, num):  
    avg = len(seq) / float(num)
    out = []
    last = 0.0

    while last < len(seq):
        out.append(seq[int(last):int(last + avg)])
        last += avg
    return out
def chunkIt(self,seq,num):
平均值=长度(顺序)/浮动(数量)
out=[]
last=0.0
而最后一个

无论您是否定义它,除非您将方法指定为静态,否则它将始终将self传递给该方法。因此,通过调用print(self.chunkIt(['1','2'],2]),它实际上是作为print(self.chunkIt(self,['1','2'],2))发送的。

self是第三个参数,因为我假设这些方法在一个类中,给定了调用self的新问题

  def chunkIt(self, seq, num):  
    avg = len(seq) / float(num)
    out = []
    last = 0.0

    while last < len(seq):
        out.append(seq[int(last):int(last + avg)])
        last += avg
    return out
def chunkIt(self,seq,num):
平均值=长度(顺序)/浮动(数量)
out=[]
last=0.0
而最后一个

无论您是否定义它,除非您将方法指定为静态,否则它将始终将self传递给该方法。因此,通过调用print(self.chunkIt(['1','2'],2]),它实际上是作为print(self.chunkIt(self,['1','2'],2))发送的。

self
是第三个参数,因为您是如何调用它的。您应该在
chunkIt
中添加一个
self
参数,如果
chunkIt
确实不需要
self
,您可以将其设置为
@staticmethod
,或者,可能更好的是,将其设置为顶级函数而不是方法。但是,如果
chunkIt
在概念上可能对
self
有一些用处,即使您当前的实现没有使用它,添加
self
参数并将其用作普通方法也更有意义。
self
是第三个参数,因为您是如何调用它的。您应该在
chunkIt
中添加一个
self
参数,如果
chunkIt
确实不需要
self
,您可以将其设置为
@staticmethod
,或者,可能更好的是,将其设置为顶级函数而不是方法。但是,如果
chunkIt
在概念上可能对
self
有一些用处,即使您当前的实现没有使用它,添加
self
参数并将其作为一个普通方法使用也更有意义。