Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #64375

Re: 1st Sketch at at ReadOnly dict

From Peter Otten <__peter__@web.de>
Subject Re: 1st Sketch at at ReadOnly dict
Date 2014-01-20 22:00 +0100
Organization None
References <52DD8297.9050504@earthlink.net> <lbk29u$oho$1@ger.gmane.org>
Newsgroups comp.lang.python
Message-ID <mailman.5759.1390251593.18130.python-list@python.org> (permalink)

Show all headers | View raw


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.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: 1st Sketch at at ReadOnly dict Peter Otten <__peter__@web.de> - 2014-01-20 22:00 +0100

csiph-web