Python TypeError:chunkIt()接受2个位置参数,但给出了3个
当我尝试在此类游戏中运行self.chunkIt时,我收到以下错误: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
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
参数并将其作为一个普通方法使用也更有意义。