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
相关推荐
qq_41384740几秒前
CSS如何控制全屏显示的元素样式
jvm·数据库·python
scan7243 分钟前
上下文摘要
python
第一程序员6 分钟前
2026年GitHub上最火的10个Python项目,Rust开发者必看
python·rust·github
阿正呀11 分钟前
CSS粘性定位不生效怎么办_检查父元素高度与overflow属性设置
jvm·数据库·python
2403_8832610913 分钟前
如何获取DDL语句_DBMS_METADATA.GET_DDL提取对象定义
jvm·数据库·python
m0_6138562919 分钟前
mysql数据库乱码如何解决_mysql字符集与校对规则配置方法
jvm·数据库·python
m0_6028577637 分钟前
Chart.js 4 中实现基于数据极值的垂直线性渐变填充
jvm·数据库·python
夏恪37 分钟前
如何计算SQL同比环比数据_利用窗口函数LAG与LEAD
jvm·数据库·python
念恒1230641 分钟前
Python(运算与操作)
python·学习
qq_3493174843 分钟前
Tailwind CSS如何自定义间距数值_配置theme spacing扩展CSS边距
jvm·数据库·python