program story

TypeError : worker ()는 0 개의 위치 인자를 받지만 1이 주어졌습니다.

inputbox 2021. 1. 6. 08:16
반응형

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

귀하의 worker방법에 필요한 매개 변수로 '자기'가 클래스 메소드가 아닌 기능 때문이다. 그것을 추가하면 잘 작동합니다.


메서드가 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를


클래스 self의 함수 worker()매개 변수 로 추가 하는 것을 잊었습니다 KeyStatisticCollection.


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

method_a ()라는 이름의 메서드에서 동일한 이름의 method_a (with_params) 메서드를 호출하여 재귀를 일으키는 지 확인하십시오.

참조 URL : https://stackoverflow.com/questions/18884782/typeerror-worker-takes-0-positional-arguments-but-1-was-given

반응형