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
相关推荐
xiaoshuaishuai824 分钟前
Git二分法定位Bug
开发语言·python
2401_8357925433 分钟前
FastAPI 速通
windows·python·fastapi
YMWM_1 小时前
export MPLBACKEND=Agg命令使用
linux·python
派大星~课堂1 小时前
【力扣-148. 排序链表】Python笔记
python·leetcode·链表
微涼5301 小时前
【Python】在使用联网工具时需要的问题
服务器·python·php
小白菜又菜1 小时前
Leetcode 657. Robot Return to Origin
python·leetcode·职场和发展
2402_881319302 小时前
跨服务通信兜底机制-Java 回传失败无持久重试队列,报告可能静默丢失。
java·开发语言·python
自信不孤单3 小时前
UniAda核心代码详解
python·ai·大模型·tta·狄利克雷理论·证据感知
smj2302_796826523 小时前
解决leetcode第3883题统计满足数位和数组的非递减数组数目
python·算法·leetcode
李昊哲小课3 小时前
Python办公自动化教程 - openpyxl让Excel处理变得轻松
python·信息可视化·excel