To be clear in this thread, I don't think I'm really ADVOCATING for a multi-level break. My comments are simply noting that I personally fairly often encounter the situation where they would be useful. At the same time, I worry about Python gaining sometimes-useful features that complicate the overall language and bring it closer to Perl's "everyone can write in their own style."
So to answer Chris' question... well, i did find something recent, but it has a ton of other extraneous stuff. But I've simplified to something that isn't that much different from my example from my tablet yesterday, but is fairly realistic still. I have an existing function that looks roughly like this: def find_needle_in_haystacks(): found_needle = False for haystack in glob.glob('path/to/stuff/*'): fh = open(fname) header = fh.readline() if get_format(header) == 'foo': for line in fh: status = process_foo(line) if status = -1: found_needle = True break elif get_format(header) == 'bar': for line in fh: status = process_bar(line) if status = -1: found_needle = True break if found_needle: break If I had a "labelled break" feature, I might rewrite it something like the following (picking convenient syntax that I'm not per-se advocating as best, even if the concept is adopted): # Hypothetical future labelled break: def find_needle_in_haystacks(): for haystack in glob.glob('path/to/stuff/*') label HAYSTACKS: fh = open(fname) header = fh.readline() if get_format(header) == 'foo': for line in fh: if process_foo(line) == -1: break HAYSTACKS elif get_format(header) == 'bar': for line in fh: if process_bar(line) == -1: break HAYSTACKS In any case, it's often possible to either (a) redefine the inner loop >> as some sort of container operation, or (b) redefine the outer >> operation as a function, and use "return". So it would be helpful to >> have an example that CAN'T be rewritten in one of those ways, to use >> as a compelling example. >> > -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/