[解決済み] Pythonのsuper()と__init__()メソッドの理解【重複
2022-03-18 03:51:25
質問
の使い方を理解しようとしているのです。
super()
. 見たところ、両方の子クラスを作成することができ、ちょうど良い感じです。
以下の2つの子クラスの実際の違いについて知りたいのですが。
class Base(object):
def __init__(self):
print "Base created"
class ChildA(Base):
def __init__(self):
Base.__init__(self)
class ChildB(Base):
def __init__(self):
super(ChildB, self).__init__()
ChildA()
ChildB()
解決方法は?
super()
を使えば、明示的に基底クラスを参照する必要がなくなるので、良いことです。しかし、主な利点は多重継承の場合に生じます。
楽しいこと
が起こる可能性があります。例えば
スーパーに関する標準的なドキュメント
を使うことができます。
注意点
は、Python 3.0 で構文が変更されました。
と言えばいいのです。
super().__init__()
の代わりに
super(ChildB, self).__init__()
というのは、IMOでは、かなりすっきりしています。また、標準のドキュメントでは
を使用するためのガイドです。
super()
という文章があり、かなり説明的です。
関連
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] スライス表記を理解する
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] Pythonで子クラスから親クラスのメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] Pythonで'super'は何をするのですか?- super().__init__() と明示的なスーパークラス __init__() の違い
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み] Pythonで'super'は何をするのですか?- super().__init__() と明示的なスーパークラス __init__() の違い