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
相关推荐
小心我捶你啊2 分钟前
提升爬虫稳定性的关键,Python爬虫代理IP解析与轮换策略
爬虫·python·tcp/ip
大傻^8 分钟前
LangChain4j RAG 核心:Document、Embedding 与向量存储抽象
开发语言·人工智能·python·embedding·langchain4j
快乐柠檬不快乐13 分钟前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
进击的小头19 分钟前
第11篇:频率响应绘制方法——伯德图(Bode Plot)
python·算法
用户8356290780511 小时前
Python 设置 Excel 条件格式教程
后端·python·excel
2401_874732532 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
l1t2 小时前
与系统库同名python脚本文件引起的奇怪错误及其解决
开发语言·数据库·python
Jackey_Song_Odd2 小时前
Part 1:Python语言核心 - 内建数据类型
开发语言·python
带娃的IT创业者2 小时前
WeClaw WebSocket 连接中断诊断:从频繁掉线到稳定长连的优化之路
python·websocket·网络协议·php·fastapi·实时通信
GinoWi2 小时前
Chapter 4 Python中的循环语句和条件语句
python