繁体   English   中英

如何在函数中使用* args?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM