Python 如何从变量的 argparse 中获取值,而不是变量的名称?

Python how to get value from argparse from variable, but not the name of the variable?

如果我做 args.svc_name,我期待相当于 args.option1,因为 svc_name 的值是 option1。但是我得到错误“'Namespace' 对象没有属性'svc_name's'”

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)

有人可以帮我吗?

ArgumentParser class 将键公开为直接属性而不是映射,因此要直接获取属性,只需直接访问它即可。根据问题中的示例,它只是

print(args.option1)

如果希望有一些其他变量(例如问题中的 svc_name)来存储 attribute/flag 以从 argparser 获取值,只需将其转换为映射(即 dict) 使用 vars 然后调用 get 方法

print(vars(args).get(svc_name))

或者,getattr(args, svc_name)