我是 Python 的for...else 语法的忠实拥护者——令人惊讶的是它的适用频率以及简化代码的效率。
但是,我还没有想出在生成器中使用它的好方法,例如:
def iterate(i):
for value in i:
yield value
else:
print 'i is empty'
在上面的示例中,我希望仅当为空print
时才执行该语句。i
但是,else
仅考虑break
和return
,它总是被执行,而不管 的长度i
。
如果不可能以for...else
这种方式使用,那么最好的方法是什么,以便print
仅在没有产生任何内容时执行该语句?