[解決済み】クラスメソッドの目的は何ですか?
2022-04-02 23:41:58
質問
私はPythonを独学で勉強していますが、最近のレッスンは PythonはJavaではありません というわけで、Classのメソッドをすべて関数に変換するのに時間を費やしました。
でやっていたことを、クラスメソッドでやる必要がないことに気づきました。
static
しかし、どのような場合に使用するのかがわかりません。 Pythonのクラスメソッドについて私が見つけることができるすべてのアドバイスは、私のような初心者はそれらを避けるべきであるという線に沿っており、標準的なドキュメントは、それらを議論するとき、その最も不透明である。
誰かPythonでClassメソッドを使用する良い例を持っていますか、少なくともClassメソッドが賢明に使用できるのはどんなときか教えてください。
どのように解決するのですか?
クラスメソッドは、特定のインスタンスに特化したメソッドではなく、何らかの形でクラスに関与するメソッドが必要な場合に使用されます。クラスメソッドの最も興味深い点は、Javaの静的メソッドやPythonのモジュールレベルの関数では不可能な、サブクラスによるオーバーライドが可能な点です。
クラスがある場合
MyClass
と、MyClass を操作するモジュールレベルの関数 (ファクトリー、依存性注入スタブなど) を作成し、それを
classmethod
. そうすれば、サブクラスで利用できるようになります。
関連
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 自分」という言葉は何のためにあるのか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python関数の高度な応用を解説
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] 静的な仮想関数を持つことはできますか?もしできないなら、なぜですか?[重複]。
-
[解決済み] Python 3.xのsuper()はなぜ魔法なのか?