Shane Hathaway wrote: > For each block statement, it is necessary to create a *new* iterator,
Right. > since iterators that have stopped are required to stay stopped. So at a > minimum, used-defined statements will need to call something, and thus > will have parentheses. The parentheses might be enough to make block > statements not look like built-in keywords. > > PEP 340 seems to punish people for avoiding the parentheses: > > transaction = begin_transaction() > > transaction: > db.execute('insert 3 into mytable') > > transaction: > db.execute('insert 4 into mytable') > > I expect that only '3' would be inserted in mytable. The second use of > the transaction iterator will immediately raise StopIteration. Yes, but wouldn't you think that people would misunderstand it in this way? Reinhold -- Mail address is perfectly valid! _______________________________________________ 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