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)
。
如果我做 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)
。