[解決済み] Pythonの継承とinitメソッド
2022-10-19 15:43:30
質問
Python初心者の者です。継承と
__init__()
.
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
結果
8
これはOKです。しかし、私は
Num2
を
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
結果
Error. Num2 has no attribute "n1".
この場合、どのようにすれば
Num2
にアクセスします。
n1
?
どのように解決するのですか?
最初の状況では
Num2
はクラスを拡張しています。
Num
という名前の特別なメソッドを再定義していないので
__init__()
で
Num2
から継承される。
Num
.
クラスが
__init__()
メソッドが定義されている場合、クラスのインスタンス化は が自動的に呼び出されます。__init__()
を呼び出します。 を自動的に呼び出します。
2番目の状況では、再定義しているので
__init__()
で
Num2
を呼び出すには、スーパークラス内のものを明示的に呼び出す必要があります (
Num
) の挙動を拡張したい場合は、明示的に呼び出す必要があります。
class Num2(Num):
def __init__(self,num):
Num.__init__(self,num)
self.n2 = num*2
関連
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] バブルソートの宿題
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] 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のsuper()と__init__()メソッドの理解【重複
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する