At 05:13 PM 5/13/2005 -0700, Guido van Rossum wrote: >I've written up the specs for my "PEP 340 redux" proposal as a >separate PEP, PEP 343. > >http://python.org/peps/pep-0343.html > >Those who have been following the thread "Merging PEP 310 and PEP >340-redux?" will recognize my proposal in that thread, which received >mostly positive responses there. > >Please review and ask for clarifications of anything that's unclear.
May I suggest this alternative translation in the "Specification" section: abc = EXPR __args = () # pseudo-variable, not visible to the user try: VAR = abc.__enter__() try: BLOCK except: __args = sys.exc_info() finally: abc.__exit__(*__args) While slighly more complex than the current translation, the current translation seems a bit misleading to me. OTOH, that may simply be because I see the *sys.exc_info() part and immediately wonder what happens when there was no exception, and sys.exc_info() contains some arbitrary previous data... Also, one question: will the "do protocol" be added to built-in "resource" types? That is, locks, files, sockets, and so on? Or will there instead be "macros" like the "opening" and "locking" templates? I notice that grammatically, "do gerund" works a lot better than "do noun", so all of your examples are words like locking, blocking, opening, redirecting, and so on. This makes it seem awkward for e.g. "do self.__lock", which doesn't make any sense. But the extra call needed to make it "do locking(self.__lock)" seems sort of gratuitous. It makes me wonder if "with" or "using" or some similar word that works better with nouns might be more appropriate, as then it would let us just add the resource protocol to common objects, and still read well. For example, a Decimal Context object might implement __enter__ by setting itself as the thread-local context, and __exit__ by restoring the previous context. "do aDecimalContext" doesn't make much sense, but "with aDecimalContext" or "using aDecimalContext" reads quite nicely. _______________________________________________ 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