python:我什么时候可以打开生成器的包装? [复制]

2023-11-21

它在幕后是如何工作的?我不明白以下错误的原因:

>>> def f():
...     yield 1,2
...     yield 3,4
...
>>> *f()
  File "<stdin>", line 1
    *f()
    ^
SyntaxError: invalid syntax
>>> zip(*f())
[(1, 3), (2, 4)]
>>> zip(f())
[((1, 2),), ((3, 4),)]
>>> *args = *f()
File "<stdin>", line 1
  *args = *f()
    ^
SyntaxError: invalid syntax

The *iterable仅在函数调用的参数列表(以及函数定义)中支持语法。

在 Python 3.x 中,您还可以在赋值的左侧使用它,如下所示:

[*args] = [1, 2, 3]

Edit: 注意有计划支持其余的概括.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python:我什么时候可以打开生成器的包装? [复制] 的相关文章

随机推荐