Pythonで継承されたクラスからベースクラスのメソッド(とコンストラクタ)を正しく呼び出すには?[重複している]をクリックします。
2023-08-16 05:42:13
質問
仮に
Base
クラスがあり
Child
を継承したクラス
Base
. Pythonで子クラスから基底クラスのコンストラクタを呼び出す正しい方法は何でしょうか?私は
super
?
今までの例です。
class Base(object):
def __init__(self, value):
self.value = value
...
class Child(Base):
def __init__(self, something_else):
super(Child, self).__init__(value=20)
self.something_else = something_else
...
これは正しいですか?
ボダ・チルドーさん、ありがとうございます。
どのように解決するのですか?
その通りです。 なお、このメソッドは
__init__
メソッドを直接
Base
クラスで、このように
class Child(Base):
def __init__(self, something_else):
Base.__init__(self, value = 20)
self.something_else = something_else
これは私が一般的に行っている方法です。 しかし、多重継承がある場合にはあまりうまく動作しないので、推奨されません。 もちろん、多重継承はそれ自体でさまざまな奇妙な効果をもたらすので、私は疫病神のようにそれを避けています。
一般に、もし継承するクラスが
super
を使用している場合、あなたも同様に使用する必要があります。
関連
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み] Pythonで子クラスから親クラスのメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] Flaskで非同期タスクを作る
最新
-
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でスーパーコンストラクタを呼び出すには?
-
[解決済み】pythonで親のイニシャライザーを連鎖的に呼び出す【重複あり
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複