在python中,可以实例化抽象类吗?

2024-06-28 20:06:41 发布

您现在位置:Python中文网/ 问答频道 /正文

from abc import ABC, abstractmethod

class Example(ABC):
    def smile(self):
        print("smile")

我的理解是Example在继承ABC{}时成为AbstractClass。无法实例化AbstractClass,但 以下代码执行时没有错误

example = Example()

Tags: 实例fromimportselfexampledef错误class
1条回答
网友
1楼 · 发布于 2024-06-28 20:06:41

虽然类中包含的方法(即smile)是具体的,但类确实是抽象的。您需要使用decorator @abc.abstractclass在抽象中创建方法。因此,如果将代码重写为:

from abc import ABC, abstractmethod

class Example(ABC):
    @abstractmethod
    def smile(self):
        print("smile")
        
e = Example()

然后您将得到错误:

TypeError: Can't instantiate abstract class Example with abstract methods smile

相关问题 更多 >