为了便于开发,我在代码中使用硬编码参数配置。在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