ホームページ  >  に質問  >  本文

python 类方法的使用场景

python的类方法的定义和使用都了解, 问题是什么情况下会使用python类方法,而不是普通方法或静态方法?

大家讲道理大家讲道理2741日前928

全員に返信(2)返信します

  • 黄舟

    黄舟2017-04-18 09:43:46

    私が思いつく例としては、クラスメソッドがコンストラクター (__init__) の代わりによく使用されるということです。

    これは簡単な例です:

    リーリー

    これはまったく役に立たない計算クラスですが、あまり気にしないでください。このクラスのコンストラクターは、任意の数の位置引数を受け取る関数を完成させます。シーケンス (リストまたはタプル) を指定してこのクラスを構築したい場合はどうすればよいですか?

    実際には、スター式を使用するだけです:

    リーリー

    ただし、現時点ではクラスメソッドも別のオプションです:

    リーリー

    classmethod を使用してコンストラクター置換を簡単に実装できるのは、classmethod の最初のパラメーターがクラス オブジェクトを受け取るためで、これにより、classmethod によって標準コンストラクターに渡された引数を処理し、クラスを使用してオブジェクトを作成できるようになります。オブジェクトを返します。

    この問題がインスタンス メソッドに渡される場合、type(self) を使用する追加の変換メソッドが存在します。静的メソッドを使用するには、メソッド内でクラス名をハードコーディングする必要がありますが、これはあまり適切ではありません。 リーリー


    インスタンス メソッド、クラスメソッド、静的メソッドについて詳しく知りたい場合は、以下を参照してください。

    • Python の静的メソッドはどのような状況で使用する必要がありますか?

    • Python で静的メソッド、クラス メソッド、または抽象メソッドを使用する方法に関する決定版ガイド


    私が回答した質問: Python-QA

    返事
    0
  • 阿神

    阿神2017-04-18 09:43:46

    ちょっと待って、例を書いてください~


    python3

    リーリー

    类方法静态方法 はどちらも 类变量 にアクセスできますが、实例变量 にはアクセスできません。
    静态变量闭包はPythonでは静态变量を介してのみ実装できるようです。

    返事
    0
  • キャンセル返事