[Skip Montanaro] > >> Yeah, but "block synchronized(v1)" doesn't look like a loop. I think > >> this might be a common stumbling block for people using this > >> construct. > > Guido> How many try/finally statements have you written inside a loop? > Guido> In my experience this is extreeeemely rare. I found no > Guido> occurrences in the standard library.
[Skip again] > How'd we start talking about try/finally? Because it provides by far the dominant use case for 'block'. The block-statement is intended to replace many boilerplace uses of try/finally. In addition, it's also a coroutine invocation primitive. > To the casual observer, this > looks like "break" should break out of the loop: > > while True: > block synchronized(v1): > ... > if v1.field: > break > time.sleep(1) Without 'block' this would be written as try/finally. And my point is that people just don't write try/finally inside a while loop very often (I found *no* examples in the entire standard library). > The PEP says: > > Note that it is left in the middle whether a block-statement > represents a loop or not; this is up to the iterator, but in the > most common case BLOCK1 is executed exactly once. > > That suggests to me it's still not clear if the block statement is actually > a looping statement. If not, then "break" should almost certainly break out > of the while loop. Dynamically, it's most likely not a loop. But the compiler doesn't know that, so the compiler considers it a loop. > BTW, what did you mean by "left in the middle" mean? I interpreted it as > "still undecided", but it's an idiom I've never seen. Perhaps it should be > replaced by something more clear. It may be a Dutch phrase that doesn't translate to English as wel as I thought. It doesn't exactly mean "still undecided" but more "depends on your POV". I'll use something different, and also clarify that as far as break/continue are concerned, it *is* a loop. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com