2013-06-11 47 views
5

我冒险进入python,并且我有一个关于星号的问题。我知道他们正在使用的参数在函数调用,但我已经看到了使用它们的功能卡以外的代码片段(比方说,在5个等级的元组,拆包他们到变量如:函数调用之外的星号

first, *middle, last = grades

每当我尝试在这种情况下使用星号/上下文出来的函数调用的参数,我得到的解释无效的语法。我在这里失去了一些东西?

回答

10

Python 3中添加扩展的元组支持拆包一个通配符,请参见PEP 3132

*start, tail = ... 
head, *middle, tail = ... 

assignment statements参考文档:

如果目标列表中包含有星号前缀一个目标,称为“主演”的目标:对象必须有至少尽可能多的项目有一个序列是目标列表中的目标,减去一个。序列的第一项从左到右分配给加星标目标前的目标。该序列的最后项目被分配给星标目标之后的目标。然后将序列中剩余项目的列表分配给加星标的目标(列表可以为空)。

使用分配在LEF-手侧(目标列表)星号的是在Python 2

一个语法错误