Skip to main content
 首页 » 编程设计

python之如何在函数中使用 *args

2025年05月04日11pander-it

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

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