[Python-Dev] Add a frozendict builtin type

Serhiy Storchaka storchaka at gmail.com
Thu Mar 1 08:43:13 CET 2012


01.03.12 01:52, Victor Stinner написав(ла):
> 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__.
 oldsetitem = dict.__setitem__
 def newsetitem(self, value):
 # check if self is not frozendict
 ...
 oldsetitem(self, value)
 ....
 dict.__setitem__ = newsetitem


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /