2011-10-06 76 views
3

我的腳本包含以下兩行導入語句:爲什麼混合'從x進口y'和'進口x'不鼓勵?

import os 
from os import path 

這似乎是我的腳本邏輯的做法:我用os.path很多時候,所以我想訪問它path。另一方面,我需要os以外的其他方法,但很少,因此我可以編寫os.access(...)爲例。

爲什麼不鼓勵?例如pychecker抱怨這個。

+0

是否有一個特別的原因,你不能只爲'os.'寫出3個額外的字符? – Amber

+0

爲什麼不只是'path = os.path' – lostyzd

+0

@lostyzd爲什麼你必須這樣做才能避免無效的警告? – agf

回答

6

從模塊導入名稱並導入整個模塊通常很奇怪。在這種情況下,你正在導入一個子模塊,所以它看起來並不壞,雖然大多數人在他們的函數調用中只使用「os.path」。

只是因爲pychecker不喜歡它並不意味着你不能這樣做。關閉該警告。

+0

這就是爲什麼它是一個警告。 Pychecker不知道這是否是一個問題,所以你會得到通知。 –

0

這可能是因爲您的腳本然後使用額外資源導入os.path兩次。也許你應該叫出你需要的所有os的功能。

+3

模塊只導入一次,不使用額外的資源。 – interjay

+0

即使在「它有兩個名字」的意義上,'path'也沒有被導入兩次,因爲它是一個模塊,而不是'os'中的類。 – agf

+0

在這種情況下,可能只是不推薦使用,因爲維護起來很麻煩。 – Chriszuma

相關問題