Skip to main content
 首页 » 编程设计

python之如何在不使用抽象方法的情况下使用 abc 创建抽象类

2025年05月04日8webabcd

使用 abc,我可以使用以下内容创建抽象类:

from abc import ABC, abstractmethod 
class A(ABC): 
    @abstractmethod 
    def foo(self): 
        print('foo') 
class B(A): 
    pass 
 
obj = B() 

这将失败,因为 B 没有定义方法 foo。 这模仿了 Java 中的抽象方法功能。

我想知道抽象类功能是否也存在于 Python 中,其中在没有任何抽象方法的情况下阻止了类的实例化。

请您参考如下方法:

在 Python 中创建抽象类的常规方法是引发内置异常 NotImplementedError。

class A(object): 
    def __init__(self): 
        raise NotImplementedError('abstract base class') 
 
class B(A): 
    def __init__(self): 
        # don't call A.__init__ here. 
        pass 
 
b = B() 
# a = A()  # This will fail.