1
我喜欢Python 3中的类型提示,但我真的很厌倦在我编写的所有模块中编写from typing import *
。是否有可能使所有模块隐式导入模块?
是否有可能将我的应用程序包装在模块或其他任何内容中,并隐式地将模块导入到所有应用程序模块中?
我喜欢Python 3中的类型提示,但我真的很厌倦在我编写的所有模块中编写from typing import *
。是否有可能使所有模块隐式导入模块?
是否有可能将我的应用程序包装在模块或其他任何内容中,并隐式地将模块导入到所有应用程序模块中?
你可以劫持builtins
模块,并把你需要的东西放在那里。这会使代码难以维护,因为更难以确定这些全局变量来自哪里,或者如果它们意外崩溃。要清楚,这是可能的,但我建议而不是这样做。
主模块需要在顶部做这样的事情。如果这不是程序中第一件事,那么其他模块将无法正常工作。进口订单不应该有所作为,所以如果有人因此而弄虚作假,而且会破坏计划,那么很难找出原因。
import typing # I assume you meant typing, not types
import builtins
vars(builtins).update({k: getattr(typing, k) for k in typing.__all__})
# Any module could do this without having to import anything
def f(x: T) -> T:
return x
感谢您的提示和答案! –
这是可能的但不这样做 –