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
相关推荐
LiAo_1996_Y12 小时前
CSS实现多列等高布局_浮动布局的高级处理技巧
jvm·数据库·python
Jenlybein12 小时前
用 uv 替代 conda,速度飙升(从 0 到 1 开始使用 uv)
后端·python·算法
格林威12 小时前
面阵相机 vs 线阵相机:堡盟与海康相机选型差异全解析 附Python实战演示
开发语言·人工智能·python·数码相机·计算机视觉·视觉检测·工业相机
Vect__12 小时前
快速掌握Python之基础语法和数据结构
开发语言·python
HHHHH1010HHHHH12 小时前
HTML函数在笔记本上卡顿怎么办_笔记本运行HTML函数优化操作【操作】
jvm·数据库·python
djjdjdjdjjdj12 小时前
CSS如何实现元素淡入淡出显示_结合animation与opacity属性
jvm·数据库·python
m0_6845019812 小时前
Go 中实现方法级执行时间监控的生产就绪方案
jvm·数据库·python
LiAo_1996_Y12 小时前
Python机器学习怎么防止数据泄漏_确保Scaler在Pipeline内拟合
jvm·数据库·python
夏恪12 小时前
php怎么实现数据库备份加密_php如何压缩并AES加密导出SQL文件
jvm·数据库·python
tjc1990100512 小时前
SQL如何实现跨行数据比较分析_LEAD函数处理数据同步问题
jvm·数据库·python