オブジェクト指向 継承の練習をしています、
Python にて オブジェクトを 書く練習をしています。
クラスを .pyファイルへ記述して、main.ipynbファイルへインポートして実行する形にしているのですが、
Event というクラスを作り、Event_nomikai と Event_live というクラスへ継承させて main.ipynbファイルで実行しようとしているのですが、引数が足りないというエラーが出てきてしまい、困っています。
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [1], in <module>
1 from event import Event, Event_nomikai, Event_live
----> 3 nomikai_M = Event_nomikai()
4 nomikai_M.do_event()
TypeError: __init__() missing 1 required positional argument: 'band'
該当
class Event:
def __init__(self, band, event_name, event_naiyou):
self.band = band
self.event_name = event_name
self.event_naiyou = event_naiyou
class Event_nomikai(Event):
def __init__(self, band, event_name="飲み会",event_naiyou="酒やつまみを摂取"):
super().__init__(band)
super().__init__(event_name)
super().__init__(event_naiyou)
def do_event(self):
print(f"{self.band.band_name}は{self.event_name}で{self.event_naiyou}しました。")
print("メンバーは全員酔っ払いました")
class Event_live(Event):
def __init__(self, band, event_name="Live",event_naiyou="演奏"):
super().__init__(band)
super().__init__(event_name)
super().__init__(evebt_naiyou)
def do_event(self):
print(f"{self.band.band_name}は{self.event_name}で{self.event_naiyou}しました。")
print("メンバーは全員演奏しました。")
from event import Event, Event_nomikai, Event_live
nomikai_M = Event_nomikai()
nomikai_M.do_event()
自分で試したこと
変数band に引数がないと言われるので、bandへ引数を記述したり、いっそbandの記述を全て削除したりしたのですが、
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [1], in <module>
1 from event import Event, Event_nomikai, Event_live
----> 3 nomikai_M = Event_nomikai()
4 nomikai_M.do_event()
File ~/environment/Band/event.py:12, in Event_nomikai.__init__(self, band, event_name, event_naiyou)
11 def __init__(self, band="MIKETEA", event_name="飲み会",event_naiyou="酒やつまみを摂取"):
---> 12 super().__init__(band)
13 super().__init__(event_name)
14 super().__init__(event_naiyou)
TypeError: __init__() missing 2 required positional arguments: 'event_name' and 'event_naiyou'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [1], in <module>
1 from event import Event, Event_nomikai, Event_live
----> 3 nomikai_M = Event_nomikai()
4 nomikai_M.do_event()
File ~/environment/Band/event.py:13, in Event_nomikai.__init__(self, event_name, event_naiyou)
11 def __init__(self, event_name="飲み会",event_naiyou="酒やつまみを摂取"):
---> 13 super().__init__(event_name)
14 super().__init__(event_naiyou)
TypeError: __init__() missing 1 required positional argument: 'event_naiyou'
と同じようなエラーが出てしまいます。
event_naiyou は、オブジェクトを定義した時点で event_naiyou = "飲み会"としてあるにもかかわらずエラーとなってしまいます。
どなたかお力をお貸しください、よろしくお願いします。