带有用户定义类的Python类型提示,无需导入

带有用户定义类的Python类型提示,无需导入,python,types,import,dependencies,hint,Python,Types,Import,Dependencies,Hint,我有一个Python项目,我希望引用自定义的用户定义类应用类型提示,而不必导入它们。我的项目越来越大,我觉得应用适当的类型提示会显著增加导入语句的数量。下面是一个简单的场景来说明我的痛苦: 在mymain.py文件中,希望为函数my_函数中的变量x添加类型提示,该函数处理来自myOtherFile.py的自定义类MyCustomClass。我希望应用类型提示,而不必将MyClass导入main.py my_function(x: MyCustomClass): ... 到目前为止,我看到

我有一个Python项目,我希望引用自定义的用户定义类应用类型提示,而不必导入它们。我的项目越来越大,我觉得应用适当的类型提示会显著增加导入语句的数量。下面是一个简单的场景来说明我的痛苦:

在mymain.py文件中,希望为函数my_函数中的变量x添加类型提示,该函数处理来自myOtherFile.py的自定义类MyCustomClass。我希望应用类型提示,而不必将MyClass导入main.py

my_function(x: MyCustomClass):
   ...
到目前为止,我看到的最佳解决方案是创建一个文件allCustomClassTypes.py,如果启用类型检查以防止循环依赖性问题,则该文件将导入整个项目中的所有自定义类:

from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from myOtherFile1 import MyCustomClass1
    from myOtherFile2 import MyCustomClass2
    from myOtherFile3 import MyCustomClass3
    ... 
然后在每个文件中应用此导入语句:

from allCustomClassTypes import *

但我真的不喜欢这种方法,希望有更好的方法。对于我描述的问题,有谁有更好的解决方案吗?

没有,您必须以某种方式导入它,无论是直接导入还是通过一个主文件导入。注意,带星号的导入通常是不鼓励的,谢谢您的评论