这是一个关于arthon中的argparse的问题,它可能很容易
import argparse
parser=argparse.ArgumentParser()
parser.add_argument('--lib')
args = parser.parse_known_args()
if args.lib == 'lib':
print 'aa'
这可行,但不是调用args.lib,我只想说'lib'(我不想输入更多),有没有办法将所有args变量导出模块(即改变范围) )。所以我可以直接检查lib的值,而不是通过在前面指定模块的名称
PS:我有很多变数,我不想重新分配每一个
答案 0 :(得分:2)
首先,我建议使用args
说明符。它清楚地说明了lib
的来源。也就是说,如果你发现你经常引用一个参数,你可以将它分配给一个较短的名字:
lib = args.lib
有一种方法可以将所有属性一次性转储到全局命名空间中,但它不能用于函数的本地命名空间,并且使用globals
而不是很好理由是个坏主意。我不会考虑将args.
的一些实例保存为足够好的理由。那就是说,这是:
globals().update(args.__dict__)
答案 1 :(得分:1)
当然,只需添加一行即可将args.lib
分配给lib
。
import argparse
parser=argparse.ArgumentParser()
parser.add_argument('-lib')
args = parser.parse_known_args()
lib = args.lib
if lib == 'lib':
print 'aa'
答案 2 :(得分:0)
当然......但是因为你的意思并不意味着你应该...而只是因为踢腿globals().update(dict(args._get_kwargs()))