classmethod(関数)
中国語の説明:
classmethodは、このパラメータなしで指定されたクラスのメソッドがインスタンスメソッドであることを指定するために使用されます:
class C: @classmethod def f(cls, arg1, arg2, ...): ...
クラスメソッド 直接クラス呼び出し (C.f()) またはインスタンス呼び出し (C().f()) を行うことができます。
バージョン: python2.2 で新機能、python2.4 で新機能が追加されました。 Python3でも引き続き利用可能です。
英語の説明:
関数のクラスメソッドを返します。
インスタンスメソッドがインスタンスを受け取るのと同じように、クラスメソッドは暗黙の最初の引数としてクラスを受け取ります。クラスメソッドを宣言するには、次のイディオムを使用します:
。class C: @classmethod def f(cls, arg1, arg2, ...): ...
@classmethod フォームは関数デコレーターです。詳細については、「関数の定義」の関数定義の説明を参照してください。
これは、クラス (C.f() など) またはインスタンス (C().f() など)。インスタンスは、そのクラスを除いて無視されます。クラス メソッドが派生クラスに対して呼び出された場合、派生クラス オブジェクトが暗黙の最初の引数として渡されます。クラス メソッドは C++ や Java の静的メソッドとは異なります。必要な場合は、このセクションの staticmethod() を参照してください。
クラス メソッドの詳細については、「標準型の階層」の標準型の階層に関するドキュメントを参照してください。
バージョン 2.2 の新機能
バージョン 2.4 での変更点: 関数デコレーター構文が追加されました。