ホームページ >バックエンド開発 >Python チュートリアル >Python のクラス本体内からクラスの静的メソッドを呼び出す方法は?
Python バージョン 3.10 以降では、クラス本体内から静的メソッドを呼び出すのは簡単です。ただし、バージョン 3.9 以前の場合、これには課題が生じます。
クラス本体内から静的メソッドを呼び出そうとすると、次のエラーが発生する可能性があります:
TypeError: 'staticmethod' object is not callable
このエラーは、静的メソッドが staticmethod デコレーターを使用して宣言された場合、記述子になるために発生します。記述子はインスタンスではなくクラスにバインドされ、クラス本体内からアクセスできなくなります。
1 つの回避策は、 static メソッド オブジェクト:
<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 中国語 Web サイトの他の関連記事を参照してください。