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
相关推荐
justjinji几秒前
如何限制MongoDB副本集初始同步的网络带宽_maxSyncSourceLagSecs等参数
jvm·数据库·python
慕涯AI2 分钟前
Agent 30 课程开发指南 - 第23课
人工智能·python
u0109147603 分钟前
CSS 中实现同类型兄弟元素悬停联动效果(如所有红色行同时高亮)
jvm·数据库·python
m0_640309303 分钟前
MySQL如何备份非常大的数据库_mydumper多线程逻辑导出工具
jvm·数据库·python
阿扬ABCD5 分钟前
python项目:外星人入侵小游戏
开发语言·python·pygame
深邃-6 分钟前
【Web安全】-基础环境安装:Miniconda,Python环境安装,PHP环境安装(2)
python·计算机网络·安全·web安全·网络安全·系统安全·php
m0_743623927 分钟前
如何在Bootstrap中自定义Modal的弹出动画效果
jvm·数据库·python
源码之家8 分钟前
计算机毕业设计:Python农业与气候数据可视化分析系统 Django框架 数据分析 可视化 爬虫 机器学习 大数据 深度学习(建议收藏)✅
大数据·python·机器学习·信息可视化·数据分析·django·课程设计
2301_817672268 分钟前
SQL如何实现分段式分组统计_使用CASE WHEN划分区间
jvm·数据库·python
麦芽糖02199 分钟前
python进阶六 正则表达式
android·python·正则表达式