Break All Loop in Python

 

코드를 감싸고 있는 모든 loop로부터 한 방에 벗어나고 싶을 때가 종종 있다.
Java에서는 label을 이용하여 이 문제를 간단히 해결할 수 있지만, 안타깝게도 python의 경우 오히려 코드를 복잡하게 만든다는 귀도의 판단에 따라 해당 로직이 구현되지 않았다고 한다. (PEP 3136 proposes labeled break/continue)

Nested loop를 한 번에 벗어나도록 구현하는 방법들 중 그나마 마음에 드는 방법은 예외처리를 이용하는건데,
function refactoring에 비해 더 간단히 구현할 수 있고 continue도 활용할 수 있어 편리하다는 장점이 있다.

다만.. 개인적으로 코드 테스트할 때 이런 작업을 하다보니 try indentation을 추가해주는 게 쪼끔 귀찮다..

try:
    for ...
        for ...
            for ...
                # Do something

                if stop_condition:
                    raise StopIteration
except StopIteration:
    # Handle exception