如何解决在python中,可以实例化抽象类吗?
from abc import ABC,abstractmethod
class Example(ABC):
def smile(self):
print("smile")
我的理解是,当 Example
继承 AbstractClass
ABC
时,它变成了 class
。一个 AbstractClass
不能被实例化,但是
以下代码执行没有错误
example = Example()
解决方法
您的类确实变得抽象了,尽管其中包含的方法/方法(smile
)是具体的。您需要使用装饰器 @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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。