【问题标题】:Asterisks outside of function calls函数调用之外的星号
【发布时间】:2013-06-11 22:13:43
【问题描述】:

我正在尝试使用 python,但我有一个关于星号的问题。我知道它们用于函数调用中的参数,但我已经看到在函数卡之外使用它们的代码 sn-ps(例如,在 5 级的元组中,将它们解包为变量,例如:

first, *middle, last = grades

每当我尝试在函数调用的参数之外的上下文/上下文中使用星号时,都会在解释器中得到无效的语法。我在这里遗漏了什么吗?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    Python 3 添加了扩展元组解包,支持 one 通配符,请参阅PEP 3132:

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

    请参阅assignment statements 参考文档:

    如果目标列表包含一个以星号为前缀的目标,称为“星号”目标:该对象必须是一个序列,其项目数至少与目标列表中的目标数减一相同。序列的第一个项目从左到右分配给加星标的目标之前的目标。序列的最终项目分配给加星标的目标之后的目标。然后将序列中剩余项目的列表分配给加星标的目标(列表可以为空)。

    在赋值的左侧(目标列表)使用星号是 Python 2 中的语法错误。

    【讨论】:

      猜你喜欢
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多