私はPythonを独学で学んでいますが、最近のレッスンではPythonはJavaではない、そして私はすべてのクラスメソッドを関数に変換するのに時間を費やしました。
Java のメソッドで行うような処理にクラス メソッドを使用する必要がないことはわかっていますstatic
が、いつ使用するかはわかりません。Python のクラス メソッドについて私が見つけたアドバイスはすべて、私のような初心者はクラス メソッドを避けるべきという内容で、標準ドキュメントではクラス メソッドについての説明が最もわかりにくいです。
Python でクラス メソッドを使用する良い例を持っている人はいませんか? または、少なくともクラス メソッドを賢明に使用できる場合を教えていただけますか?
ベストアンサー1
クラス メソッドは、特定のインスタンスに固有ではないが、何らかの形でクラスに関係するメソッドが必要な場合に使用します。クラス メソッドの最も興味深い点は、サブクラスによってオーバーライドできることです。これは、Java の静的メソッドや Python のモジュール レベルの関数では不可能なことです。
クラスMyClass
と、 MyClass で動作するモジュール レベルの関数 (ファクトリ、依存性注入スタブなど) がある場合は、 にしますclassmethod
。そうすれば、サブクラスで使用できるようになります。