[Python-ideas] 'Injecting' objects as function-local constants
Alex Light
scialexlight at gmail.com
Wed Jun 15 21:23:41 CEST 2011
Here is the source if anyone wants it.
--Alex
On Wed, Jun 15, 2011 at 3:04 PM, Terry Reedy <tjreedy at udel.edu> wrote:
> On 6/15/2011 11:48 AM, Alex Light wrote:
>
> Alex Light dixit (2011-06-14, 13:44):
>>
>> > >>> frmglobals = func.__globals__.copy()
>> > >>> func.__globals__.update(localArgs)
>> > >>> ret= func(*args, **kwargs)
>> > >>> func.__globals__.clear()
>> > >>> func.__globals__.update(frmglobals)
>>
>
> >>> frmglobals = func.__globals__.copy()
>> >>> func.__globals__.update(localArgs)
>> >>> ret= func(*args, **kwargs)
>> >>> func.__globals__.clear()
>> >>> func.__globals__.update(frmglobals)
>>
>> with this one:
>>
>> >>> with _modifyGlobals(func.__globals__, localArgs):
>> >>> ret = func(*args, **kwargs)
>>
>> with _modifyGlobals defined as:
>>
>> >>>from contextlib import contextmanager
>> >>>
>> >>>@contextmanager
>> >>>def _modifyGlobals(glbls, additions):
>> >>> frmglbls = glbls.copy()
>> >>> try:
>> >>> glbls.update(additions)
>> >>> yield
>> >>> finally:
>> >>> glbls.clear()
>> >>> glbls.update(frmglbls)
>>
>
> Posting code with all the '>>>' prompts added makes it terribly hard to cut
> and paste to try it out.
>
> --
> Terry Jan Reedy
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110615/19cc4747/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: make_local.py
Type: application/octet-stream
Size: 1776 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110615/19cc4747/attachment.obj>
More information about the Python-ideas
mailing list