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

2024-06-16 10:42:51 发布

您现在位置:Python中文网/ 问答频道 /正文

当我想跑的时候赛尔夫·丘基特在这个类游戏中,我收到以下错误:

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

如果尝试在控制台中单独运行它,它会很好地工作。 为什么它要传递3个参数? 班级游戏: definit(自我、数字问题、设备): self.number_问题=数字问题 自动装置=设备 自我提问=0

^{pr2}$

Tags: inpyself游戏newlineusersfile
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

不管您是否定义它,除非您将方法指定为静态的,否则它总是将self传递给该方法。因此通过调用print(赛尔夫·丘基特(['1','2',2])它实际上是作为打印发送的(赛尔夫·丘基特(自身,['1','2',2))

您忘记将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

相关问题 更多 >