[英]How to use *args in a function?
这可能是一个基本问题,但不幸的是,我在搜索时无法获得任何信息。
我有一个在命令行上运行时使用*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:])
以接收所有参数。 但是,没有充分的理由使用varargs-仅使函数接受列表args
并直接传递sys.argv[1:]
。
调用函数时,您将使用类似的语法:
func(*sys.argv[1:])
此处, sys.argv
列表前的*
将列表扩展为单独的参数。
sys.argv
列表本身包含在命令行上找到的所有参数,包括脚本名称; 从第二项开始对其进行切片,将为您提供所有传入的选项,而无需脚本名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.