-2
と抽象クラス<...>をインスタンス化することはできませんが、私のコードです:はTypeError:ここでは抽象メソッド
from abc import ABC
from abc import abstractmethod
class Mamifiero(ABC):
"""docstring for Mamifiero"""
def __init__(self):
self.alimentacion = 'carnivoro'
@abstractmethod
def __respirar(self):
print('inhalar... exhalar')
class Perro(Mamifiero):
"""docstring for Perro"""
def __init__(self, ojos=2,):
self.ojos = ojos
私はperro.respirar()
プリント'inhalar... exhalar'
が、私はPERROクラスをインスタンス化したい私は、このエラーを表示することを望みます。私のスクリプトで何が問題なのかを知りたい
*抽象メソッドを作成して実装するのではないと思ったことは何ですか? – user2357112
実際に['@ abstractmethod'](https://docs.python.org/3/library/abc.html#abc.abstractmethod)は何をしていますか? – poke
抽象メソッドの実装は継承されるものではありません。むしろ、非抽象オーバーライドから 'super().__ respirar()'のようなものを介して呼び出すことができます。 – chepner