Python では、バインド メソッド、アンバインド メソッド、および静的メソッドの区別は、効果的なクラス設計にとって重要です。
他のほとんどのオブジェクト指向言語とは異なり、Python クラス メソッドはデフォルトでは静的ではありません。クラス インスタンスがメンバー関数を呼び出すと、そのインスタンスを最初の引数として持つ非バインド メソッドの呼び出しに変換されます。たとえば、次のコードについて考えてみましょう。
class Test(object): def method_one(self): print "Called method_one"
インスタンス a_test で method_one を呼び出すと、次の結果が得られます。
a_test.method_one() => Test.method_one(a_test)
静的メソッドを定義するには、インスタンスではなくクラスで呼び出される場合は、 @staticmethod デコレータを使用します。このデコレータは、メタクラスに非バインド メソッドを作成するように指示します。例:
class Test(object): @staticmethod def method_two(): print "Called method_two"
これで、インスタンスとクラスの両方がメソッド 2 を呼び出すことができます。
a_test = Test() a_test.method_one() a_test.method_two() Test.method_two()
インスタンスなしでメソッド 2 を呼び出しても、メソッド 1 とは異なり、エラーは発生しません。インスタンスはそれにバインドされます。
以上がPython のバインドされたメソッド、アンバインドされたメソッド、および静的なメソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。