2016-08-19 128 views
1

我喜欢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 
+0

感谢您的提示和答案! –

相关问题