Подтвердить что ты не робот

TypeError: worker() принимает 0 позиционных аргументов, но 1 дано

Я пытаюсь реализовать подкласс и выдает ошибку:

TypeError: worker() takes 0 positional arguments but 1 was given

class KeyStatisticCollection(DataDownloadUtilities.DataDownloadCollection):
    def GenerateAddressStrings(self):
        pass    
    def worker():
        pass
    def DownloadProc(self):
        pass
4b9b3361

Ответ 1

Ваш метод worker нуждается в "я" в качестве параметра, поскольку это метод класса, а не функция. Добавление этого должно заставить его работать нормально.

Ответ 2

Если метод не требует self в качестве аргумента, вы можете использовать декоратор @staticmethod, чтобы избежать ошибки:

class KeyStatisticCollection(DataDownloadUtilities.DataDownloadCollection):

    def GenerateAddressStrings(self):
        pass    

    @staticmethod
    def worker():
        pass

    def DownloadProc(self):
        pass

См https://docs.python.org/3/library/functions.html#staticmethod

Ответ 3

Вы забыли добавить self в качестве параметра в функцию worker() в классе KeyStatisticCollection.

Ответ 4

class KeyStatisticCollection(DataDownloadUtilities.DataDownloadCollection):
def GenerateAddressStrings(self):
    pass    
def worker(self):
    pass
def DownloadProc(self):
    pass

Ответ 5

Убедитесь, что из метода с именем method_a() вы вызываете метод с тем же именем method_a (with_params), вызывающий рекурсию