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
相关推荐
查古穆35 分钟前
python进阶-Pydantic模型
开发语言·python
佳木逢钺1 小时前
PyQt界面美化系统高级工具库:打造现代化桌面应用的完整指南
python·pyqt
工頁光軍1 小时前
基于Python的Milvus完整使用案例
开发语言·python·milvus
Csvn1 小时前
特殊方法与运算符重载
python
xht08322 小时前
PHP vs Python:编程语言终极对决
开发语言·python·php
2401_879693872 小时前
使用Python控制Arduino或树莓派
jvm·数据库·python
查古穆2 小时前
python进阶-推导式
开发语言·python
☆5662 小时前
如何为开源Python项目做贡献?
jvm·数据库·python
m0_560396473 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python