【发布时间】:2017-12-27 13:08:04
【问题描述】:
为了便于开发,我在代码中使用了硬编码的 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默认值吗?
标签: python configuration argparse