Я пробовал следующий код Python:
from abc import ABCMeta, abstractmethod
class Bar:
__metaclass__ = ABCMeta
@abstractmethod
def foo(self):
pass
class Bar2(Bar):
def foo2(self):
print("Foo2")
b = Bar()
b2 = Bar2()
Я думал, что наличие @abstractmethod
гарантирует, что мой родительский класс будет абстрактным, а дочерний класс также будет абстрактным, поскольку он не реализует абстрактный метод. Но здесь я не получаю ошибки при попытке создать экземпляры обоих классов.
Кто-нибудь может объяснить почему?
b=Bar() TypeError: Can't instantiate abstract class Bar with abstract methods foo
- person Tanveer Alam   schedule 24.02.2015