+1 on updating the FAQ. Maybe we could even have it notice that a read-only version of the desired semantic for 'with' is easily hacked with the *current* semantic of 'with'...:
@contextlib.contextmanager def readonly(anobj): caller_globals = sys._getframe(2).f_globals saved_globals = caller_globals.copy() caller_globals.update((n, getattr(anobj, n)) for n in dir(anobj)) yield caller_globals.clear() caller_globals.update(saved_globals) and then, of course, with readonly(someobj): ... (local variables take precedence, and in particular all assignments define local variables, as usual -- but you can say e.g. 'zz' to mean 'someobj.zz', if you're sufficiently keen on giving up the advantage of having many well-separated namespaces;-). Alex On Sat, Jun 14, 2008 at 11:16 PM, Cesare Di Mauro <[EMAIL PROTECTED]> wrote: > In data 15 giugno 2008 alle ore 02:24:43, Greg Ewing <[EMAIL PROTECTED]> ha > scritto: > >> ...and which should *not* be used in most cases, for >> the same reason. >> >> All those tutorials that start out with 'from something >> import *' are doing a lot of harm to the impressionable >> minds of new programmers, IMO. > > OK, but nobody have questioned about removing 'from something import *' just > to help noobs... > That's because the instruction *can* be useful in *some* (hopely limited, but > existent) contexts. > It's a matter of programmer choises. > > Anyway (and dropping my proposal), I think that the FAQ needs to be changed > to advice that the > 'with' keyword in Python makes a completely different kind of work. > > Cesare > _______________________________________________ > 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/aleaxit%40gmail.com > _______________________________________________ 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