Guido van Rossum wrote:
> [Greg Ewing]
>> I like the general shape of this, but I have one or two
>> reservations about the details.
>
> That summarizes the feedback so far pretty well. I think we're on to
> something. And I'm not too proud to say that Ruby has led the way here
> to some extent (even if Python's implementation would be fundamentally
> different, since it's based on generators, which has some different
> possibilities and precludes some Ruby patterns).
Five random thoughts:
1. So if break and continue are allowed in with statements only when there
is an enclosing loop, it would be a inconsistency; consider
for item in seq:
with gen():
continue
when the generator gen catches the ContinueFlow and does with it what it
wants.
It is then slightly unfair not to allow
with x:
continue
Anyway, I would consider both counterintuitive. So what about making
ReturnFlow,
BreakFlow and ContinueFlow "private" exceptions that cannot be caught in
user code
and instead introducing a new statement that allows passing data to the
generator?
2. In process of handling this, would it be reasonable to (re)introduce a
combined
try-except-finally statement with defined syntax (all except before finally)
and
behavior (finally is always executed)?
5. What about the intended usage of 'with' as in Visual B.. NO, NO, NOT THE
WHIP!
(not that you couldn't emulate this with a clever "generator":
def short(x):
yield x
with short(my.long["object"]reference()) as _:
_.spam = _.ham = _.eggs()
yours,
Reinhold
--
Mail address is perfectly valid!
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com