根据https://stackoverflow.com/a/17246413/2687324,all()
和any()
短路。评估顺序是否得到保证?
使用链接答案中的示例:
>>> def test():
... yield True
... print('one')
... yield False
... print('two')
... yield True
... print('three')
...
>>> all(test())
one
False
结果总是one
和False
?
答案 0 :(得分:4)
所有(迭代)强>
如果iterable的所有元素都为true(或者iterable为空),则返回True。相当于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
正如评论中所说的那样,答案是肯定的,如果你的迭代的顺序是稳定的。