[Python-Dev] Add a frozendict builtin type
Victor Stinner
victor.stinner at haypocalc.com
Thu Mar 1 10:11:03 CET 2012
>> Problem: if you implement a frozendict type inheriting from dict in
>> Python, it is still possible to call dict methods (e.g.
>> dict.__setitem__()). To fix this issue, pysandbox removes all dict
>> methods modifying the dict: __setitem__, __delitem__, pop, etc. This
>> is a problem because untrusted code cannot use these methods on valid
>> dict created in the sandbox.
>
>
> You can redefine dict.__setitem__.
Ah? It doesn't work here.
>>> dict.__setitem__=lambda key, value: None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't set attributes of built-in/extension type 'dict'
Victor
More information about the Python-Dev
mailing list