On Wed, 4 Dec 2019 at 21:16, Anders Hovmöller <bo...@killingar.net> wrote: > > On 4 Dec 2019, at 21:28, Soni L. <fakedme...@gmail.com> wrote: > >> On 2019-12-04 5:12 p.m., Mike Miller wrote: > >> > >>> On 2019-12-04 11:05, David Mertz wrote: > >>> I've often wanted named loops. I know approaches to this have been > >>> proposed many times, and they all have their own warts. E.g. an ad hoc > >>> pseudo code that may or may not match any previous proposal: > >>> > >>> for x in stuff as outer: > >>> for y in other_stuff as inner: > >>> ... > >>> if cond: > >>> break outer > >>> > >>> But we all manage without it. > >> > >> +1 Nice, find myself with that problem about once a year and it is > >> annoying to code around. > > > > Just use context managers! > > What? How exactly? Can you rewrite the example given?
I guess what is meant is this: from contextlib import suppress class Exit(BaseException): pass stuff = [10, 20, 30] other_stuff = [1, 2, 3] with suppress(Exit): for x in stuff: for y in other_stuff: print(x, y) if x + y > 21: raise Exit You can so the same with try/except: class Exit(BaseException): pass stuff = [10, 20, 30] other_stuff = [1, 2, 3] try: for x in stuff: for y in other_stuff: print(x, y) if x + y > 21: raise Exit except Exit: pass I dislike both of the above though. My suggestion would be to use a function rather than exceptions: stuff = [10, 20, 30] other_stuff = [1, 2, 3] def func(): for x in stuff: for y in other_stuff: print(x, y) if x + y > 21: return func() In this example it might seem awkward to introduce a function just for this but normally in context the function can have a more reasonable purpose and a good name and return something useful etc. -- Oscar _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/5FMNLSRDHAAP5T2DCUSNH7QGDIK6G2O6/ Code of Conduct: http://python.org/psf/codeofconduct/