如何阻止没有抽象方法的Python类被实例化?

时间:2017-02-27 23:36:49

标签: python python-3.x abstract-class

我有以下代码:

class Category(abc.ABC):
    foo = {"bar"}

尽管继承自abc.ABC,但我可以实例化一个Category

>>> a = Category()
>>> 

虽然我希望它会引发如下错误。

>>> class Foo(abc.ABC):
...     @abc.abstractmethod
...     def bar(self):
...         return "baz"
... 
>>> f = Foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class Foo with abstract methods bar
>>> 

这似乎是因为Category没有抽象方法。如何确保尝试实例化Category会引发异常?

0 个答案:

没有答案