我一直在想,如果在一個專案中使用多個子檔案來使代碼看起來干凈,為什么我必須明確地匯入每個模塊,例如每個子檔案中的日志記錄或時間。有沒有辦法讓subfile.py意識到進口的main.py。請參閱下面的示例,我想在其中全域使用匯入時間
主檔案
import logging
import time
from subfile import myfunc
myfunc("Test")
子檔案.py
import logging
def myfunc(var):
logging.info("entered myfunc")
time.sleep(2)
logging.info("Variable: {}".format(var))
uj5u.com熱心網友回復:
當所有依賴項都是明確的時會更好。讓我們想象一下,像你想要的那樣subfile隱式使用timefrom main。這會導致問題:
- 您不能再進行單元測驗
subfile,因為它不能與在main那里定義的依賴項分開作業。你必須import time在測驗模塊中。現在main和tests兩者都有那個匯入,而不僅僅是subfile. - 如果(出于某種原因)你決定洗掉
import time從main,subfile變得破碎,但有沒有辦法可以知道,除非你運行整個專案的一些代碼分析器。當前模型允許您僅通過掃描一個檔案和目錄結構來查找丟失的依賴項。
如果您確實有很多常見的依賴項(例如,每個檔案中都需要time、logging和 10 個其他包),請參閱此主題:如何在模塊之間共享匯入?可以幫助管理它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402993.html
標籤:
