을 사용하여 값을 추출하고 StopIteration
을 생성했기 때문에 오늘 버그가 발생했습니다.next()는 파이썬에서 any/all과 잘 맞지 않습니다.
일반적으로,하지만 next
를 사용하여 함수가 all()
반복 내에서 호출되고 있었다, 그래서 all
단지 조기 종료 및 True
를 반환했습니다.
이것은 예상되는 동작입니까? 이런 종류의 것을 피하는 데 도움이되는 스타일 가이드가 있습니까?
간단한 예 :
def error(): return next(i for i in range(3) if i==10)
error() # fails with StopIteration
all(error() for i in range(2)) # returns True
같은 일이 파이썬에서 3 – khelwood
@khelwood 덕분에 일이, 나는 물론 py2.7 태그 – amwinter
을 제거 할 수 있습니다. [** all ** * (iterable) * iterable의 모든 요소가 true이면 true를 반환하고 iterable이 비어 있으면 true를 반환합니다. ***.] (https://docs.python.org/2/) library/functions.html # all) –