[解決済み] __init__() は親クラスの __init__() を呼び出すべきですか?
2022-06-04 17:02:37
質問
Objective-Cでは、このような構成になっていますね。
- (void)init {
if (self = [super init]) {
// init class
}
return self;
}
Pythonは、親クラスの実装を
__init__
?
class NewClass(SomeOtherClass):
def __init__(self):
SomeOtherClass.__init__(self)
# init class
についてもtrue/falseでしょうか?
__new__()
と
__del__()
?
編集します。
よく似た質問があります。
継承とオーバーライド
__init__
Pythonで
どのように解決するのですか?
Pythonでは、スーパークラスの呼び出しは
__init__
は任意です。もし呼び出したら、その後に
super
を使うか、あるいは明示的にスーパークラスの名前を付けるかどうかも任意です。
object.__init__(self)
オブジェクトの場合、superメソッドは空なので、superメソッドを呼び出すことは厳密には必要ではありません。同じように
__del__
.
一方
__new__
では、確かに super メソッドを呼び出し、その戻り値を新しく生成されたオブジェクトとして使うべきです - 明示的に別のものを返したいのでなければ。
関連
-
Python カメの描画コマンドとその例
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonによるjieba分割ライブラリ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] なぜ、スーパークラスの __init__ メソッドは自動的に呼び出されないのですか?
-
[解決済み] Pythonの継承と__init__のオーバーライド