Dav*_*Eyk 9 python iteration function generator
请考虑以下Python代码:
def f(*args):
for a in args:
pass
foo = ['foo', 'bar', 'baz']
# Python generator expressions FTW
gen = (f for f in foo)
f(*gen)
Run Code Online (Sandbox Code Playgroud)
是否*args在通话时自动扩展发电机?换句话说,我在gen内部迭代两次f(*gen),一次扩展*args,一次迭代args?或者是生成器保持原始状态,而迭代只在for循环期间发生一次?
Sve*_*ach 14
在函数调用时扩展生成器,因为您可以轻松检查:
def f(*args):
print(args)
foo = ['foo', 'bar', 'baz']
gen = (f for f in foo)
f(*gen)
Run Code Online (Sandbox Code Playgroud)
将打印
('foo', 'bar', 'baz')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |