【发布时间】:2011-04-27 00:52:24
【问题描述】:
我一直在研究将数组或列表(Python 倾向于调用它们)传递给函数。
我读到了一些关于使用 *args 的文章,例如:
def someFunc(*args)
for x in args
print x
但不确定这是对还是错。似乎没有什么可以按我的意愿工作。我曾经能够轻松地将数组传递给 PHP 函数,这让我很困惑。看来我也不能这样做:
def someFunc(*args, someString)
因为它抛出了一个错误。
我想我只是把自己完全弄糊涂了,想找人帮我解决。
【问题讨论】:
-
docs.python.org/tutorial/… 简要说明使用星号。这意味着您可以传递任意数量的参数,它们将被包装在一个元组中(可以像函数中的列表一样访问它)。带有星号的参数名称必须放在最后,以便 Python 知道哪个是哪个。
-
“Python 倾向于这样称呼它们”?这不是“趋势”。这是一个定义问题。
-
S.Lott,冷静点!我认为您在那儿有点苛刻-该评论是否对对话增加了任何内容?没有。
-
你可以认为这很苛刻。然而,单词选择很重要,因为其他知识较少的人会读到这个。我建议“倾向于称呼他们”是一个糟糕的词选择,因为它会使某人感到困惑。有足够的 Python 问题用“array”而不是“list”。这表明人们没有使用正确的术语并且没有成功搜索现有文档。有足够的混乱。这是一个“清单”。真的。你也可以使用这个词,而不必担心矛盾。
-
最有趣的部分......虽然我很欣赏 S.Lott 对文字的关心,但 Python 列表实际上是作为动态数组实现的......哈哈。
标签: python parameter-passing argument-unpacking