現在私は、Pythonの認定資格取得を目指して、基礎的事項からPythonを勉強しており、直近ではクラス継承についてを把握しようとしているところです。
大元のクラスと継承先クラスについて記述したコードは、次の通りです。
Python
1# クラス継承 2""" 3元々作成しているクラスを親クラスとして新クラスを作成する。 4親クラスの内容をある文法で引き継ぐほかに、子クラスでは新しいクラスを定義する。 5""" 6class FavChara: 7 def __init__(self, title, name): 8 self.title = title 9 self.name = name 10 11class NeoFavChara: 12 def __init__(self, title, name, prime): 13 super().__init__(title, name) 14 self.prime = prime 15 16classes = [] 17classes.append(NeoFavChara('ドラゴンボール','孫悟飯','孫悟空')) 18classes.append(NeoFavChara('ワンピース','ウソップ','ルフィ')) 19classes.append(NeoFavChara('ワンパンマン','サイタマ','サイタマ')) 20classes.append(NeoFavChara('約束のネバーランド','エマ','エマ')) 21classes.append(NeoFavChara('鬼滅の刃','竈門ねず子','竈門炭治郎')) 22 23for eachCls in classes: 24 print("『"+eachCls.title+"』で一番好きなキャラ: "+eachCls.name+"(主人公は"+eachCls.prime+")")
しかし、こちらを「IDLE (Python 3.8 64-bit)」で実行したところ、
Traceback (most recent call last): File "C:\Users\user\Desktop\PythonTrials\izm06.py", line 78, in <module> classes.append(NeoFavChara('ドラゴンボール','孫悟飯','孫悟空')) File "C:\Users\user\Desktop\PythonTrials\izm06.py", line 74, in __init__ super().__init__(title, name) TypeError: object.__init__() takes exactly one argument (the instance to initialize)
というエラーが出てしまい、そこから一向に、継承したクラスの内容を文字列に含めてすべて出力するところまで漕ぎつけられません。
https://teratail.com/questions/157952 の質問に寄せられた回答から、最初にクラスで__init__を付けて設定した引数と呼び出し時に利用する引数との数が合っていない、という可能性が思い浮かんだのですが、それでもどのような記述で引数を設定れば良いのかが分からずにいます。
些末な問題点故に起こってしまった事とは承知しておりますが、御存知の方がいらっしゃいましたら、今回もご回答をお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/19 06:40