41.4.1 stopiteration 예외 발생시키기 예제 에러 질문입니다.
, LEE SANGYUN님이 작성제목 처럼 예제를 실행 경우 파이썬 쉘에서
아래와 같이 raise StopIteration(total) 사용시 문제가 발생합니다.
앞의 예제인 return total 사용시는 문제가 없었는데 말이죠..
RuntimeError: generator raised StopIteration
에러가 나오고 실행이 되지 않는 문제를 보이고 있습니다.
혹시나 제가 작성시 문제가 있나해서 예제 올려 주신거를 그래도 복사해서 실행 해도 에러가 나더군요 관련 하여 어떻게 해결 하여야 할지 질문 드립니다.
Re: 41.4.1 stopiteration 예외 발생시키기 예제 에러 질문입니다.
, 도장_ 관리자님이 작성Python 3.6에서는 문제가 되지 않는 코드이나 Python 3.7에서 문제가 발생하는 것 같습니다.
작가님의 검토를 거쳐 답변을 등록하겠습니다.
Re: 41.4.1 stopiteration 예외 발생시키기 예제 에러 질문입니다.
, 도장_ 관리자님이 작성Python 3.7부터 StopIteration이 Runtime Error로 변경되었다고 합니다.
자세한 내용은 파이썬 공식 문서에 설명되어 있지만, 영어이고 전문적인 내용이라 어려운 것 같습니다.
-. PEP 479 -- Change StopIteration handling inside generators
https://www.python.org/dev/peps/pep-0479/파이썬 커뮤니티에서는 StopIteration이 Runtime Error로 변경되었으니 쓰지 말고 raise StopIteration을 return으로 변경하라고 합니다.
예제에서는
raise StopIteration(total)
을
return total
로 변경하면 됩니다.