Python에서 메서드를 호출하려고 하면 개발자는 "TypeError"라는 당황스러운 오류 메시지를 접할 수 있습니다. : method()는 1개의 위치 인수를 취하지만 2개가 주어졌습니다." 이 오류는 특히 하나의 인수만 메서드에 전달된 경우 혼란스러울 수 있습니다.
Python은 뒤에서 메서드 호출을 다음과 같이 해석합니다.
class_name.method(object, argument)
이것은 메서드를 허용하는 메커니즘입니다. 자신이 행동하는 대상을 쉽게 작업할 수 있습니다. 메서드 정의에서 첫 번째 인수는 일반적으로 개체 인스턴스를 참조하는 self라는 이름이 지정됩니다.
다음 예를 고려하세요.
class MyClass: def method(self, arg): print(self) print(arg) my_object = MyClass() my_object.method("foo")
실행되면 위 코드는 다음과 같이 변환됩니다.
MyClass.method(my_object, "foo")
이는 메소드에 의해 명시적으로 하나만 전달되었음에도 불구하고 메소드가 두 개의 인수를 취하는 이유를 설명합니다. caller.
이러한 혼란을 완화하기 위해 개발자는 바인딩된 개체에 액세스할 필요가 없는 메서드에 staticmethod() 데코레이터를 사용할 수 있습니다. 이렇게 하면 메서드가 일반 함수처럼 동작하여 self 인수가 필요하지 않습니다.
class MyOtherClass: @staticmethod def method(arg): print(arg) my_other_object = MyOtherClass() my_other_object.method("foo")
요약하면 "Method Takes 1 Argument But 2 Give" 오류가 발생하면 Python에서 다음 점을 기억하세요. , 메소드는 일반적으로 연관된 객체인 추가 암시적 인수를 받습니다. 이 동작을 신중하게 고려하고 필요한 경우 데코레이터를 사용하면 혼란을 방지하고 코드를 간소화할 수 있습니다.
위 내용은 내 Python 메소드에 'TypeError: method()가 1개의 위치 인수를 사용하지만 2개가 제공되었습니다'가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!