#Python クラス メソッドと通常のメソッドの違い
以下では、例を使用して違いを説明します。 最初に、2 つのメソッドを含むクラスを定義します。class Apple(object): def get_apple(self, n): print "apple: %s,%s" % (self,n) @classmethod def get_class_apple(cls, n): print "apple: %s,%s" % (cls,n)
クラスの共通メソッド
クラスの共通メソッドは、次の方法で呼び出す必要があります。クラスのインスタンス。a = Apple() a.get_apple(2)出力結果
apple: <__main__.Apple object at 0x7fa3a9202ed0>,2バインディング関係を確認します:
print (a.get_apple) <bound method Apple.get_apple of <__main__.Apple object at 0x7fa3a9202ed0>>クラスの通常のメソッドは、クラスのインスタンスでのみ使用できます。クラスを使用して通常のメソッドを呼び出すと、次のエラーが発生します。
Apple.get_apple(2) Traceback (most recent call last): File "static.py", line 22, in <module> Apple.get_apple(2) TypeError: unbound method get_apple() must be called with Apple instance as first argument (got int instance instead)
クラス メソッド
クラス メソッドとは、メソッドがクラスにバインドされていることを意味します。a.get_class_apple(3) Apple.get_class_apple(3) apple: <class '__main__.Apple'>,3 apple: <class '__main__.Apple'>,3バインディング関係をもう一度見てください:
print (a.get_class_apple) print (Apple.get_class_apple)インスタンスを使用する場合とクラスを呼び出す場合、出力結果は同じです。
<bound method type.get_class_apple of <class '__main__.Apple'>> <bound method type.get_class_apple of <class '__main__.Apple'>>関連する推奨事項:「
Python チュートリアル 」
以上がPythonのクラスメソッドと通常のメソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。