抽象クラスship
があります。抽象クラスを継承するクラスの更新
from abc import ABC, abstractmethod
class ship(ABC):
def __init__(self):
...
@abstractmethod
def do_stuff(self,stuff,things):
pass
私はそれを継承する複数のクラス(destroyer
、cruiser
、patrol_boat
、等...)私が追加した場合
class carrier(ship):
def __init__(self):
....
def do_stuff(self,stuff,things):
....
現在、さんはship
def do_more_stuff(self):
をしましょうを持っています
class ship(ABC):
def __init__(self):
...
@abstractmethod
def do_stuff(self,stuff,things):
pass
@abstractmethod
def do_more_stuff(self,stuff,things):
pass
コンソールに再入力するまで、変更はサブクラスに影響しません。これをどのように変更しますか?
実際に行ったことを示すための十分なコードを提供する必要があります([MVCE](https://stackoverflow.com/help/MCVE))。新しいメソッドを追加するためにsuper _class_を編集する必要があります(サブクラスが定義された後ではあまり効率的ではありませんが、不合理ではありません)。間違いなく_instances_を編集しているか、クラスを編集していないと思われます。 – ShadowRanger
私は 'ship'を定義し直していて、残りのクラスは' ship'の前の定義を継承しているように感じます。ブロック全体に再入力せずに関数を 'ship'に追加するにはどうすればいいですか? – David
サブクラスの継承元を変更しないで、クラス全体を再定義するのは正しいことです。私の答えはここの詳細をカバーしています。非抽象メソッドでは機能する方法がありますが、抽象メソッドではこのテクニックを使用できません。 – ShadowRanger