Skip to content

Instantly share code, notes, and snippets.

@dmoisset
Created December 7, 2020 23:13
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dmoisset/55f5916f9f339a143b6f3d155de8706e to your computer and use it in GitHub Desktop.
Save dmoisset/55f5916f9f339a143b6f3d155de8706e to your computer and use it in GitHub Desktop.
from contextlib import contextmanager
@contextmanager
def breakable():
class Break(Exception): pass
def breaker(): raise Break
try:
yield breaker
except Break:
pass
for outer in range(5):
with breakable() as brk:
for middle in range(5):
for inner in range(10):
print(outer, middle, inner)
if middle == 1 and inner == 5:
brk()
print(f"end middle loop #{middle}")
print(f"end outer loop #{outer}")
print("done")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment