黄舟2017-04-18 09:43:46
私が思いつく例としては、クラスメソッドがコンストラクター (__init__
) の代わりによく使用されるということです。
これは簡単な例です:
リーリーこれはまったく役に立たない計算クラスですが、あまり気にしないでください。このクラスのコンストラクターは、任意の数の位置引数を受け取る関数を完成させます。シーケンス (リストまたはタプル) を指定してこのクラスを構築したい場合はどうすればよいですか?
実際には、スター式を使用するだけです:
リーリーただし、現時点ではクラスメソッドも別のオプションです:
リーリーclassmethod を使用してコンストラクター置換を簡単に実装できるのは、classmethod の最初のパラメーターがクラス オブジェクトを受け取るためで、これにより、classmethod によって標準コンストラクターに渡された引数を処理し、クラスを使用してオブジェクトを作成できるようになります。オブジェクトを返します。
この問題がインスタンス メソッドに渡される場合、type(self)
を使用する追加の変換メソッドが存在します。静的メソッドを使用するには、メソッド内でクラス名をハードコーディングする必要がありますが、これはあまり適切ではありません。
リーリー
私が回答した質問: Python-QA
阿神2017-04-18 09:43:46
ちょっと待って、例を書いてください~
python3
リーリー类方法
と 静态方法
はどちらも 类
の 类变量
にアクセスできますが、实例变量
にはアクセスできません。 静态变量
、闭包
はPythonでは静态变量
を介してのみ実装できるようです。