python - 在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
推荐阅读
- python - 如何在 Django 中使用上下文处理器创建表单?
- variables - 如何制作反垃圾邮件功能discord.py?
- python - 如何找到这个转折点
- ruby-on-rails - Rails 每当 gem 不使用 Ubuntu 和 Docker Compose 执行重复的 crontab 任务时
- wheelnav.js - 完全隐藏轮子
- javascript - Gulp 4 中未显示引导图标
- php - 在 null 上调用成员函数 subject()
- angular - 在组件之间以角度共享数据
- flutter - 在 Flutter 中使用图像选择器插件选择视频的最大持续时间
- python - 访问 PyTorch 模块 - ResNet18