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
相关推荐
Dxy12393102162 分钟前
PyTorch的CyclicLR详细介绍:给模型训练装上“涡轮增压”
人工智能·pytorch·python
那小子、真烦8 分钟前
OpenClaw Skill 编写规范 与示例
python
nananaij18 分钟前
【LeetCode-02 最小偶倍数 python解法】
python·算法·leetcode
英英_27 分钟前
Selenium 常用浏览器操作全解析
python·selenium·测试工具
咕泡科技44 分钟前
从0到1系统学习大模型:一份接地气的入门指南
人工智能·python·学习
KerwinChou_CN1 小时前
大模型 RAG 中 RRF(Reciprocal Rank Fusion倒数排序融合)是什么
人工智能·后端·python
无巧不成书02181 小时前
Java数值字面量速查表
java·开发语言·python·开发者·字面量
小鸡吃米…1 小时前
测试线程应用程序
开发语言·python
python开发笔记1 小时前
python(79) 底层代码追踪工具
开发语言·python