Я испытывал ниже питона кода:Нет ошибок, а не инстанцирование абстрактного класса, даже если абстрактный метод не реализован
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
будет гарантировать, что мой родительский класс будет абстрактным и класс ребенка также будет абстрактным, поскольку он не реализует абстрактный метод. Но здесь у меня нет ошибки, пытающейся создать экземпляр обоих классов.
Может ли кто-нибудь объяснить, почему?
я получил исключение 'б = Bar() TypeError: Невозможно создать абстрактный класс Bar с абстрактными методами Foo' –
@TanveerAlam Даже я удивлен ... Я не получаю ошибку ... это из-за версии? Я использую 3.4 – codingsplash