Which objects are expanded by double-star ** operator?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Tue Jun 8 06:21:23 EDT 2010


On Mon, 07 Jun 2010 15:04:35 -0600, Ian Kelly wrote:

> I don't think that what you want to do here is possible.  It appears to
> be hard-coded and not affected by subclassing, as evidenced by the
> following snippet:
> 
> class NonDict(dict):
>     for attr in dict.__dict__:
>         if attr not in ('__init__', '__new__',):
>             locals()[attr] = None


I'm afraid your test is invalid. As the documentation states, you CANNOT 
write to locals() -- the change doesn't stick. This is nothing to do with 
dicts.

>>> def f():
...     x = 1
...     locals()['x'] = 2
...     print x
...
>>> f()
1




-- 
Steven



More information about the Python-list mailing list