python 类方法的使用场景
大家讲道理
大家讲道理 2017-04-18 09:41:46
0
2
952

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(2)
黄舟

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

これは簡単な例です:

リーリー

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

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

リーリー

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

リーリー

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

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


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

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

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


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

いいねを押す +0
阿神

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


python3

リーリー

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート