应为4个位置参数,但得到5个

2024-09-30 06:16:44 发布

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

我遇到了一个python问题,它给出了错误“预期的位置参数为4,但得到了5”

我想用文件中的每一行创建一个对象。该类接受四个参数。 这是文件:

 B.Borg 10 15 0.67
 B.Becker 2 15 0.13
 B.Bingley 3 15 0.20

我的班级:

    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

我就是这样划分文件中的每一行的:

    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]))

它给出了同样的错误


Tags: 文件selfgetreturndefmatch错误str

热门问题