2016-08-19 168 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

感謝您的提示和答案! –

相關問題