这可能是一个基本问题,但不幸的是我在搜索时什么也得不到。
我有一个函数,当该函数在命令行上运行时,它使用 *args
来捕获参数。
基本结构如下:
def func(*args):
<code starts>
...
</code ends>
func("arg1", "arg2", "arg3")
这里的问题是,如果我在代码文件本身中传递参数,代码就可以正常工作,如上面的代码片段所示。我正在研究如何从命令行实际运行此代码,参数如下:
# python <file.py> arg1 arg2 arg3
为此,我知道我应该更改代码文件本身中的“func("arg1", "arg2", "arg3")' 行,但我不确定它是怎么回事。
谁能指出我该如何纠正这个问题。
非常感谢
注意:两种解决方案都有效,是的,两者都是一样的。很遗憾我不能同时接受这两个答案。
最佳答案
sys.argv[1:]
将为您提供所有命令行参数列表。
因此您可以在代码中执行 func(*sys.argv[1:])
以接收所有参数。但是,没有充分的理由使用可变参数 - 只需让函数接受列表 args
并直接传递 sys.argv[1:]
。
关于python - 如何在函数中使用 *args?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767604/