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
相关推荐
gf13211115 分钟前
制作卡点视频
数据库·python·音视频
owlion9 分钟前
如何将视频文案整理成学习笔记
人工智能·python·机器学习·语言模型·自然语言处理
癫狂的兔子9 分钟前
【Python】【NumPy】random.rand和random.uniform的异同点
开发语言·python·numpy
Lupino14 分钟前
aio_periodic 重构与优化实战:构建高性能 Python 定时任务客户端
python·haskell
先做个垃圾出来………19 分钟前
Python整数存储与位运算
开发语言·python
RAY_010420 分钟前
Python—面向对象
python
才不做选择39 分钟前
基于 YOLOv8 的部落冲突 (Clash of Clans) 目标检测系统
人工智能·python·yolo·目标检测
龘龍龙1 小时前
Python基础学习(十一)
python·学习·mysql
a努力。1 小时前
京东Java面试被问:双亲委派模型被破坏的场景和原理
java·开发语言·后端·python·面试·linq
程序员小远1 小时前
UI自动化测试框架:PO模式+数据驱动
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例