我喜欢Python 3的类型暗示,但我真的厌倦了在我写的所有模块中编写from typing import *
。
是否可以将我的应用程序包装在模块或其他任何内容中,并隐式导入我的所有应用程序模块中的模块?
答案 0 :(得分:1)
您可以劫持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