模块中定义的所有类的类型提示

问题描述

假设我有一个模块 CustomClasses.py,它包含 10 个类。我有一个方法,比如说 process(),它可以采用 CustomClasses 模块的任何类的对象。

方法

def process(custom_class_instance):
    some code...

现在,对于 custom_class_instance 的类型提示,我可以使用 typing.Union 来指示支持的类型,但这肯定会占用大量代码空间(因此会降低可读性)并且需要一些手动工作。那么是否有其他方法可以指定 custom_class_instance 将是 CustomClasses.py 中任何类的对象。

解决方法

根据@deceze 对该问题的评论,使所有类都继承自一个公共抽象基类,并使用该基类进行类型提示。