爲了便於開發,我在代碼中使用硬編碼參數配置。在harcoded配置和命令行之間切換使用argparse
import argparse
if __name__ == '__main__':
local_conf = {
"debug": True,
"loglevel": 2
}
parser = argparse.ArgumentParser()
parser.add_argument("--from_bash", action="store_true")
parser.add_argument("--debug", action="store_true")
parser.add_argument("--loglevel", default=5)
conf =parser.parse_args()
if not conf.from_bash:
conf.__dict__ = {**conf.__dict__, **local_conf} # merges configurations
....
我發現通過對它們進行評論可以更輕鬆地打開和關閉選項。
從腳本執行它,我用一個選項告訴程序忽略硬編碼的配置:--from_bash這裏
python main.py --from_bash --loglevel 3
這是錯誤容易,如果我忘記了 - from_bash選項,我得到一個錯誤的配置。
在硬編碼配置和命令行之間切換是否有更簡潔的方法?
看起來您的用戶需要從3個值中選擇'local_conf','argparse'默認值和用戶提供的值。你真的需要這些'argparse'默認值嗎? – hpaulj