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
相关推荐
dreams_dream2 分钟前
什么是迭代器和生成器
python
悠闲蜗牛�32 分钟前
深入浅出Spring Boot 3.x:新特性全解析与实战指南
开发语言·python
xinhuanjieyi42 分钟前
python获取租房70页信息,为了安全隐去了真实网址
开发语言·python
gzroy1 小时前
量化金融实践-海龟交易法
python·金融
sg_knight1 小时前
适配器模式(Adapter)
python·设计模式·适配器模式·adapter
52Hz1182 小时前
力扣20.有效的括号、155.最小栈
python·算法·leetcode
小鸡吃米…2 小时前
TensorFlow 实现多层感知机学习
人工智能·python·tensorflow
WW、forever3 小时前
【服务器】上传服务器中数据至 FigShare(Python)
运维·服务器·python
宝贝儿好3 小时前
【强化学习】第十章:随机高斯策略
人工智能·python·深度学习·神经网络·机器人·自动驾驶