Python淺析:Python變數作為配置檔案格式的利與弊
本篇文章小編就給大家講述一下用Python變數作為配置檔案格式的利與弊
配置檔案的格式非常多,有ini、xml、yaml等等,各有優點,適合不同的場景。然而,由於Python語言的解釋性和動態性,給Python程式設計師帶來了另一個選擇:直接用Python變數作為配置檔案格式,相信Python程式設計師更傾向於這種形式。但是,在享受便利的同時,不能忽略當中存在的不足。
用Python變數作為配置檔案格式
相信大部分Python程式設計師都不會陌生,把配置直接用變數的形式寫到一個模組中,在需要讀取配置的地方,直接import模組就能得到配置變數。這得益於:
Python是解釋性語言,無需編譯,修改後的原始檔直接可以執行;
Python優雅的語法,直觀的變數定義,靈活的資料型別。
配置檔案示例:
<!-- lang: python -->
# config.py
listen_port = 4444
use_epoll = True
在讀取配置的地方:
<!-- lang: python -->
import config
port_num = config.listen_port
if config.use_epoll:
一、優點
直接用python變數作為配置檔案格式的優點是顯然的:
不用任何parser(直譯器)來解釋配置檔案。Python直譯器本身就擔當了parser的角色。
使用自然、方便,直接可用,和其他變數的使用沒有任何區別。
學習成本低,不需要學習其他配置檔案的格式和語法。
如此明顯的優勢,相信用Python程式設計的時候,如無特殊情況,必定會選用這種形式的配置檔案。
接下來,我們說說**“特殊情況”**,什麼情況下應該避免使用Python變數作為配置檔案。
二、缺點
方便之處在於不用parser,缺點也在於不用parser。
通常情況,配置檔案是人負責寫,程式負責讀。現在,程式讀配置檔案非常方便,人寫配置檔案也非常方便。
但是會不會存在這樣的情況,配置檔案既要讓人寫,也要讓程式碼寫。顯然,這種情況是存在的,比如:程式的配置可以直接改配置檔案,同時也提供了一套介面讓使用者在介面上修改配置。在介面上修改的配置,最終也是反映到配置檔案中,這就要求程式碼修改配置檔案了。
那麼,我們獲得配置檔案變數的值容易,把修改後的值寫回去容易嗎?
容易:按照語法格式,變數 = 值,寫到配置檔案即可。
不容易:由於沒有任何parser的支援,我們我們只知道有這個變數,知道這個變數的值,但是,不能定位到原來配置檔案中變數的位置,這就限制了我們無法在原來的位置上修改,只能重新生成整個配置檔案。
重新生成配置檔案會帶來什麼問題?
註釋丟失,我們沒法獲得配置檔案的註釋,也就無法重新生成,所有註釋都將丟失。雖然不影響功能,但是使用者下次想要手動修改的時候,沒有了先前的註釋非常不方便。
變數順序混亂,在Python直譯器看來,配置檔案的變數是沒有順序,但是現實中,使用者對配置變數的理解是功能相近分成“一組”,根據作用的大小、先後排出“順序”。順序混亂了,使用者想要手動修改的時候將會非常困惑。
結論
是否應該使用Python變數作為配置檔案格式?取決於程式的使用場景。It depends.
相關文章
- Python進階,ConfigParser:Python中對於ini格式的配置檔案的使用Python
- HarmonyOS Stage 模型:程序、執行緒與配置檔案之淺析模型執行緒
- Python_16 配置檔案與封裝Python封裝
- 淺析Python專案伺服器部署Python伺服器
- python 修改jenkins的配置檔案PythonJenkins
- MySQL開啟SSL的利與弊MySql
- 【Python】配置檔案配置路徑Python
- python變數與變數作用域Python變數
- Python配置檔案使用教程Python
- python 配置檔案如何使用Python
- python config配置檔案的讀寫Python
- python讀配置檔案配置資訊Python
- 結對程式設計的利與弊程式設計
- java中的JAR檔案淺析JavaJAR
- Python - 基礎知識專題 - 配置檔案與日誌管理(正在寫作)Python
- 怎麼開啟python的.py格式的檔案Python
- Python製作egg檔案包Python
- python ini 配置檔案處理Python
- python pyyaml操作yaml配置檔案PythonYAML
- Android 檔案儲存淺析Android
- 淺析檔案上傳漏洞
- python讀取yaml配置檔案的方法PythonYAML
- Python 中常見的配置檔案寫法Python
- 淺談Python變數賦值的三種方法!Python變數賦值
- 【TUNE_ORACLE】索引定期重建的利與弊Oracle索引
- 可變資料型別不能作為python函式的引數資料型別Python函式
- 使用 Consul 作為 Python 微服務的配置中心Python微服務
- mac如何配置python環境變數MacPython變數
- python 將 CVS檔案轉為HTML檔案PythonHTML
- python對json格式原檔案追加內容PythonJSON
- 『無為則無心』Python基礎 — 7、Python的變數Python變數
- Python之ini配置檔案詳解Python
- python怎麼讀取配置檔案Python
- Python中常見的配置檔案寫法分享!Python
- python學習:變數與字串Python變數字串
- 如何看待電話機器人的利與弊?機器人
- Nginx配置檔案的語法格式Nginx
- 使用Python模仿檔案行為Python