【发布时间】:2011-07-08 03:41:14
【问题描述】:
考虑以下 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)
*args 会在调用时自动扩展生成器吗?换句话说,我是否在f(*gen) 内迭代gen 两次,一次扩展*args,一次迭代args?还是生成器保持原始状态,而迭代只在 for 循环中发生一次?
【问题讨论】:
标签: python function iteration generator