On 16 Dec, 17:28, bearophileh...@lycos.com wrote: > Johannes Bauer: > > > is there anything like a frozen dict in Python3, so I could do a > > foo = { FrozenDict({"a" : "b"}): 3 } > > You can adapt this code to Python3 (and post a new recipe? It may be > positive to create a new section of the Cookbook for Py3 > only):http://code.activestate.com/recipes/414283/
There's actually only tiny changes needed (I believe) - Change exception syntax: raise AttributeError("A frozendict cannot be modified.") - (bugfix for the original version): add **kw arg to __new__ (passed to dict.__init__) Simple testing looks OK. And the resulting code is OK for both 2.x and 3.0. Moral - don't assume that all code needs to be rewritten for Python 3.0 :-) Paul. PS I imagine that 2to3 would have fixed this up fine, but it was so easy to do by hand that I didn't bother :-) -- http://mail.python.org/mailman/listinfo/python-list