>백엔드 개발 >파이썬 튜토리얼 >명시적 인수가 하나인 경우에도 'TypeError: method()가 1개의 위치 인수를 사용하지만 2개가 주어졌습니다.'가 발생하는 이유는 무엇입니까?

명시적 인수가 하나인 경우에도 'TypeError: method()가 1개의 위치 인수를 사용하지만 2개가 주어졌습니다.'가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-30 13:25:10577검색

Why Does

"TypeError: method()는 1개의 위치 인수를 사용하지만 2개의 인수가 전달되었습니다", 단 하나의 인수만 전달됨

"TypeError" 오류가 발생하는 경우 : method()는 1개의 위치 인수를 취하지만 2개가 주어졌습니다." 인수를 하나만 전달했음에도 불구하고 Python의 메서드 호출을 이해하는 것이 중요합니다.

Python에서 메서드 호출은 보다 장황한 구문을 위한 구문 설탕입니다. 객체에 대해 메서드를 호출할 때 언어는 호출을 더 명시적인 형식으로 변환합니다. 여기서 객체는 메서드에 대한 첫 번째 인수가 됩니다.

예를 들어 다음 호출은 다음과 같습니다.

my_object.method("foo")

은(는) 다음과 같이 번역됩니다.

MyClass.method(my_object, "foo")

여기서 첫 번째 인수(my_object)는 메서드 정의 내에서 self 매개 변수라고 합니다. 이 매개변수는 메소드가 호출되는 객체를 나타냅니다.

대부분의 경우 메소드에는 호출되는 객체에 대한 액세스가 필요합니다. 그러나 때로는 바인딩된 개체에 의존하지 않는 메서드를 원할 수도 있습니다. 이러한 경우 Python의 staticmethod() 함수를 사용하여 메소드를 장식할 수 있습니다.

class MyOtherClass:

    @staticmethod
    def method(arg):
        print(arg)

staticmethod()로 메소드를 장식하면 자체 매개변수가 필요하지 않으므로 참조 없이 직접 메소드를 호출할 수 있습니다. the object:

my_other_object.method("foo")

이것은 두 개의 인수가 제공되었다는 오류가 발생한 이유를 명확히 합니다. Python은 메소드를 호출하는 객체(예: 원래 예의 my_object)를 암시적 첫 번째 인수로 해석하여 총 2개의 인수가 전달됩니다.

위 내용은 명시적 인수가 하나인 경우에도 'TypeError: method()가 1개의 위치 인수를 사용하지만 2개가 주어졌습니다.'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.