python - 如何在函数中使用 *args?

标签 python function args

这可能是一个基本问题,但不幸的是我在搜索时什么也得不到。

我有一个函数,当该函数在命令行上运行时,它使用 *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/

相关文章:

python - 如何检测关闭的套接字或实现 Apple 推送通知提供程序

c++ - 通过使用来自同一类 C++ 的函数内部的指针 vector 访问数据

javascript - .call()/.apply() 没有参数 VS 简单地调用带有 () 括号的函数

javascript - 这些函数类型名称是什么?

java - 如何连接两个命令行参数?

python-3.x - 如何在 python 中将 *args 与类继承一起使用?

python - django RequestFactory 丢失 url kwargs

python - 如何在单独的列表中拆分字符串中的每个单词

java.lang.ArrayIndexOutOfBoundsException : 0 when I try to access to the first argument of args parameters, 为什么?

python - 训练期间未在检查点中导出用于预处理的 TF hub 模块变量