1st Sketch at at ReadOnly dict

Peter Otten __peter__ at web.de
Mon Jan 20 16:00:10 EST 2014


Peter Otten wrote:

> Charles Hixson wrote:
> 
>> This is just a first sketch, and I haven't yet attempted to test it, so
>> what I'm hoping for is criticisms on the general approach.
>> 
>> class RODict:
> 
>>      def __init__ (self, ddict = {}):
> 
> Default values are evaluted just once when the method is created. Mutable
> default values mean trouble:
> 
>>>> class D:
> ...     def __init__(self, dict={}):
> ...             self.dict = dict
> ...     def __setitem__(self, key, value):
> ...             self.dict[key] = value
> ...     def __repr__(self): return repr(self.dict)
> ...
>>>> d1 = D()
>>>> d2 = D()
>>>> d1[1] = 42
>>>> d2[2] = 42
>>>> d1
> {1: 42, 2: 42}
>>>> d2
> {1: 42, 2: 42}

D'oh, that was just and instintive reaction.

You may already know that... Of course it doesn't matter as long as no 
attempt is made to mutate the mutable value.




More information about the Python-list mailing list