python bug?

Thomas Guettler guettli at thomas-guettler.de
Mon Jul 26 11:27:31 EDT 2004


Am Mon, 26 Jul 2004 16:21:51 +0300 schrieb Anthony Petropoulos:

> Hi,
> 
> When running this simple code:
> -------
> class Dada:
>         a = []
>         def __init__(self, arg):
>                 self.a.append(arg)
> 
> d1 = Dada("pro")
> d2 = Dada("hoho")
> 
> print d1.a, d2.a
> ------------
> I get the output ['pro', 'hoho'] ['pro', 'hoho'], instead of what I
> expected: ['pro'] ['hoho'].
> 
> Is this a feature? Is there something I'm missing?

your list "a" is at "class level". All instances
share the same.

try this:
    def __init__(self, arg):
        self.a=[]
        self.a.append(arg)

HTH,
 Thomas




More information about the Python-list mailing list