如果我执行 args.svc_name,我期望等于 args.option1,因为 svc_name 的值是 option1。但我收到错误“'命名空间'对象没有属性'svc_name'”
parser = argparse.ArgumentParser(prog=None,description="test")
parser.add_argument("--option1", nargs="?",help="option")
args = parser.parse_args()
svc_name = "option1"
print (args.svc_name)
有人可以帮我吗?
The ArgumentParser
类将键公开为直接属性而不是映射,因此要直接获取属性,只需直接访问它即可。根据问题中的示例,它只是
print(args.option1)
如果有人希望有一些其他变量(例如svc_name
从问题中)存储属性/标志以从argparser获取值,只需将其转换为映射(即dict
) using vars https://docs.python.org/library/functions.html#vars然后调用get方法
print(vars(args).get(svc_name))
或者,getattr(args, svc_name)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)