Python 应为4个位置参数,但得到5个
我遇到了一个python问题,它给出了错误“预期的位置参数为4,但得到了5” 我想用文件中的每一行创建一个对象。该类接受四个参数。 这是文件:Python 应为4个位置参数,但得到5个,python,Python,我遇到了一个python问题,它给出了错误“预期的位置参数为4,但得到了5” 我想用文件中的每一行创建一个对象。该类接受四个参数。 这是文件: B.Borg 10 15 0.67 B.Becker 2 15 0.13 B.Bingley 3 15 0.20 def skapa_spelare(spelare): spelarelistan = [] for x in spelare: y = x.split()
B.Borg 10 15 0.67
B.Becker 2 15 0.13
B.Bingley 3 15 0.20
def skapa_spelare(spelare):
spelarelistan = []
for x in spelare:
y = x.split()
p = Spelareinfo(y[0],y[1],y[2],y[3])
print (p)
我的班级:
class Spelareinfo:
def __init__(self, namn, vunna_match, antal_match, andel_vunna):
self.__namn = namn
self.__vunna_match = vunna_match
self.__antal_match = antal_match
self.__andel_vunna = andel_vunna
def __str__(self):
spelare = str(self.__namn)+"\t "+ str(self.__vunna_match)+ "\t "+str(self.__antal_match)+"\t "+str(self.__andel_vunna)
return spelare
def get_namn(self):
return self.__namn
def get_vunna_match(self):
return self.__vunna_match
def get_andel_vunna(self):
return self.__andel_vunna
我就是这样划分文件中的每一行的:
B.Borg 10 15 0.67
B.Becker 2 15 0.13
B.Bingley 3 15 0.20
def skapa_spelare(spelare):
spelarelistan = []
for x in spelare:
y = x.split()
p = Spelareinfo(y[0],y[1],y[2],y[3])
print (p)
错误是:
TypeError: __init__() takes 4 positional arguments but 5 were given
我试图找出错误的位置,因此我尝试了以下代码:
list1 = ['B.Borg', '10', '15', '0.67']
list2 = ['B.Bingley', '3', '15', '0.20']
list3= ['B.Becker', '2', '15', '0.13']
print(Spelareinfo(list1[0],list1[1],list1[2],list1[3]))
它给出了同样的错误 你确定你给出的是你自己的代码吗?我运行了它,它没有返回任何消息error@cmxu还有很多其他的东西,所以我选择了显示错误的部分。我用你的代码创建了这个类,然后运行
p=…
行,它创建了这个对象。我看你的初始化代码没有问题。一定还有别的东西。@cmxu是的,在我问这个问题之前,我注意到它应该是``对于spelare中的x:y=x.split()p=Spelareinfo(y[0],y[1],y[2],y[3])``但是我尝试了每一个索引,它们都是基于参数的。我是说,从你发布的代码来看,这个错误没有意义。我只是想让你发布更多信息,或者指出发生这种情况的地方,或者提供数据或其他信息。