问题描述
假设我有一个模块 CustomClasses.py,它包含 10 个类。我有一个方法,比如说 process()
,它可以采用 CustomClasses
模块的任何类的对象。
方法:
def process(custom_class_instance):
some code...
现在,对于 custom_class_instance
的类型提示,我可以使用 typing.Union
来指示支持的类型,但这肯定会占用大量代码空间(因此会降低可读性)并且需要一些手动工作。那么是否有其他方法可以指定 custom_class_instance
将是 CustomClasses.py 中任何类的对象。
解决方法
根据@deceze 对该问题的评论,使所有类都继承自一个公共抽象基类,并使用该基类进行类型提示。