python 抽象类

这是一个正常类

python 复制代码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
class A:
    def f(self):
        pass


class B(A):
    def g(self):
        print("g")


if __name__ == "__main__":
    a = A()
    b = B()
    b.g()  # g
    b.f()

抽象类(C++中含有纯虚函数的类,)

让A继承ABC,然后给f标上@abstractmethod,A就是一个抽象类了

必须要实现f才能实例化

python 复制代码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
from abc import ABC, abstractmethod


class A(ABC):
    @abstractmethod
    def f(self):
        pass


class B(A):
    def f(self):
        print("f")

    def g(self):
        print("g")


class C(A):
    pass


if __name__ == "__main__":
    # a = A()
    b = B()
    b.g()  # g
    b.f()  # f
    c = C()  # TypeError: Can't instantiate abstract class C with abstract methods f
相关推荐
DaqunChen17 小时前
mysql存储引擎性能基准测试_InnoDB与MyISAM对比指南
jvm·数据库·python
2301_7826591817 小时前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python
mailangduoduo17 小时前
实战对比PyTorch VS PyTorch Lighting以MNIST为例
人工智能·pytorch·python·深度学习·图像分类·全连接网络
Qy_cm17 小时前
pytorch+vit基础结构
人工智能·pytorch·python
InfinteJustice17 小时前
CSS如何创建响应式导航栏菜单_结合Flexbox与媒体查询
jvm·数据库·python
粉嘟小飞妹儿17 小时前
Python环境PyTorch分布式训练初始化失败_检查MASTER_ADDR与端口
jvm·数据库·python
粉嘟小飞妹儿17 小时前
PHP怎么使用Eloquent Attribute Synthesis属性合成_Laravel多源数据融合【指南】
jvm·数据库·python
m0_6403093017 小时前
用Symfony构建AI驱动的Web应用实战
jvm·数据库·python
Warren9817 小时前
Windows本地部署n8n完整教程(基于Docker,新手友好)
运维·windows·python·测试工具·docker·容器·可用性测试
星马梦缘17 小时前
强化学习实战-2——Keras-DoubleDQN解决Predator【图像输入】
人工智能·python·jupyter·cnn·keras·强化学习·dqn