假设我有模块 myscript.py;此模块是生产代码,通常称为 %dir%>python myscript.py foo bar
。
我想扩展它以接受关键字参数。我知道我可以使用下面的脚本来获取这些参数,但不幸的是必须使用
%dir%>python myscript.py main(foo, bar)
。
我知道我可以使用 argparse
模块,但我不确定该怎么做。
import sys
def main(foo,bar,**kwargs):
print 'Called myscript with:'
print 'foo = %s' % foo
print 'bar = %s' % bar
if kwargs:
for k in kwargs.keys():
print 'keyword argument : %s' % k + ' = ' + '%s' % kwargs[k]
if __name__=="__main__":
exec(''.join(sys.argv[1:]))
原文由 Dr. John A Zoidberg 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你想像在主函数中一样传递关键字参数,
key=value
,你可以这样做:一些例子:
但是,这假定键和值之间没有任何空格,
key = value
将不起作用。如果您正在寻找
--argument
种关键字参数,您 应该 使用argparse
。