2011-11-09 71 views

回答

19

import config看到的最大的問題是,你不知道會發生什麼時你輸入它。是的,您將得到一組使用.風格界面自然引用的符號。但配置文件中的代碼也可以執行who-know-what。現在,如果你完全信任你的用戶,那麼允許他們在配置文件中做任何他們想做的事情可能是一件好事。但是,如果您的數量未知,或者想要保護用戶不受自己的干擾,那麼以更傳統的格式配置文件將更安全,更安全。

+3

這是一個非常好的觀點,我沒有考慮過,因爲我完全信任自己。 – jathanism

6

「導入配置」非常簡單,靈活且功能強大,但由於它可以做任何事情,如果config.py不在安全的地方,它可能會很危險。

3

IMO它歸結爲個人風格的問題。你打算讓第三方編輯你的配置嗎?如果是這樣,也許有一種更「自然」的配置風格是有道理的,它不是技術性的,並且可能不會超過目標受衆的頭腦。

許多流行的項目,如FabricDjango都使用「本地」配置樣式,它本質上只是一個Python模塊。法布里有fabfile.py和Django有settings.py

總的來說,使用導入模塊的本地方法,您將擁有更多的靈活性,因爲您可以在該文件中執行任何您想要的操作,包括定義函數,類等,因爲它只是另一個Python模塊你正在導入。

7

這個完成取決於您的腳本需求和目標。有一種方法確實不是「更好」,只是不同而已。對於大多數蟒配置解析器(包括ConfigParserconfig模塊)的非常詳細的討論,請參見:

Python Wiki - ConfigParserShootout

相關問題