Mypy:如何使用模块中的所有类创建别名类型

时间:2019-02-06 17:12:41

标签: python-3.x types mypy

我有一个模块foo,它定义了很多类,例如

class A():
  ...
class B():
 ...
class C():
 ...
...

我想创建一个包含所有这些类的“ foo类型”别名,即

my_foo_type = Union[A, B, C, ...]

但是,有太多类,我不想键入它们,但是有编程解决方案。我通过

访问模块中定义的所有类
for name, obj in inspect.getmembers(foo):
    if inspect.isclass(obj):
        print(obj)

如何将其与类型别名联系起来?

1 个答案:

答案 0 :(得分:1)

我认为不可能。我不知道您想对类做什么,但是根据您的用例,您可以:

  1. 使您的类成为基类的子类(这也可能会改善模块的设计);
  2. 使用将为您生成类型变量的外部脚本(每次在模块中添加或删除类时运行该脚本);
  3. 其他:)