No error while instantiating abstract class, even though abstract method is not implemented
abc, abstract, abstract-class, python, python-3.x
Solution
You must set meta-class of `Bar` class to `ABCMeta`.
Python 2:
class Bar:
__metaclass__ = ABCMeta
@abstractmethod
def foo(self):
pass
Python 3:
class Bar(object, metaclass=ABCMeta):
@abstractmethod
def foo(self):
pass
Problem
I was trying out the below python code: ``` 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() ``` I thought having `@abstractmethod` will ensure that my parent class will be abstract and the child class would also be abstract as it is not implementing the abstract method. But here, I get no error trying to instantiate both the classes. Can anyone explain why?