Python 버전 3.10 이상의 경우 클래스 본문 내에서 정적 메서드를 호출하는 것은 간단합니다. 그러나 3.9 이하 버전에서는 이것이 문제가 됩니다.
클래스 본문 내에서 정적 메소드를 호출하려고 하면 다음 오류가 발생할 수 있습니다.
TypeError: 'staticmethod' object is not callable
이 오류는 정적 메서드 데코레이터를 사용하여 선언된 정적 메서드가 설명자가 되기 때문에 발생합니다. 설명자는 인스턴스 대신 클래스에 바인딩되므로 클래스 본문 내에서 액세스할 수 없게 됩니다.
한 가지 해결 방법은 인스턴스의 __func__ 속성을 통해 원래 원시 함수에 액세스하는 것입니다. 정적 메서드 객체:
<code class="python">class Klass(object): @staticmethod def stat_func(): return 42 _ANS = stat_func.__func__() # call the staticmethod def method(self): ret = Klass.stat_func() return ret</code>
<code class="python">class Klass(object): @staticmethod def stat_func(): return 42 def method(self): ret = Klass.stat_func() return ret</code>
위 내용은 Python의 클래스 본문 내에서 클래스 정적 메서드를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!