因此,我正在使用Python進行一個項目,並試圖使用pylint來保持它的標準,並且一般情況下。所以,我有一個源文件,(我們會叫它a.py)「未使用的導入警告」和pylint
#a.py
import loggingsetup
def foo():
log.info("This is a log message")
但是,我想控制日誌記錄的樣子,所以在loggingsetup我有類似:
#loggingsetup.py
import logging
logging.root.setLevel(logging.DEBUG)
consoleOut = logging.StreamHandler()
consoleOut.setLevel(logging.INFO)
consoleOut.setFormatter(logging.Formatter("\t"+logging.BASIC_FORMAT))
logging.root.addHandler(consoleOut)
#etc
現在,這似乎工作正常。我想作爲一個初步問題,我應該問一下,如果這是正確的方式,或者如果我的代碼有不同的構建方式,那將是更可取的。
但我的主要問題是,當我在a.py上運行pylint時,我得到了一個像「未使用的導入 - 導入loggingsetup」的警告,因爲我實際上沒有從loggingsetup調用任何方法或函數。
我可以做一些事情,像重新定義一個函數的loggingsetup主體並調用它,但它似乎愚蠢和容易出錯(我不得不擔心調用它兩次,如果我從其他地方導入loggingsetup,並且如果我理解python如何處理導入,那對我當前的設置不是問題)。
我明顯可以告訴pylint忽略這個警告,但我想我會先問這裏,以確保這不是我應該處理的東西。
導入一個模塊,只是它的副作用覺得我錯了。它讓你的代碼更難以辨別。顯式比隱式更好。 – 2012-08-14 16:59:16
這只是一個警告,你可能已經忘記了一些事情和/或可能會做一些不必要的事情。如果情況並非如此,請忽略它。 – martineau 2012-08-14 17:58:38
我有點不同意martineau的上述觀點。是的,有時候就是這樣,你不得不忽視警告,但通常警告不應該被視爲「友好的提醒」,並且被忽視而不被確定,這就是爲什麼我要麼確定我可以忽略它,要麼得到更好的方法。 – Retsam 2012-08-14 18:11:55