[Python-Dev] Possible bug in class-init, lookin for mentors
Paul Moore
p.f.moore at gmail.com
Fri Apr 21 11:07:18 EDT 2017
This is correct behaviour. I would suggest that you post this to
python-list for a full discussion of what's going on here, but
basically the default value for argument bar of __init__ is created at
class creation time, and then reused for every instance. This is a
common mistake made by newcomers, using mutable default arguments for
functions (or methods).
A google search for "python mutable default argument" should find you
some useful explanations of what's going on.
Cheers,
Paul
On 21 April 2017 at 10:47, Justus Schwabedal <jschwabedal at gmail.com> wrote:
> Hi everyone,
>
> I possibly found a bug in class __init__ and would like to fix it. So I'm
> looking for a mentor to help me.
>
> `class Foo:
> def __init__(self, bar=[]):
> self.list = bar
>
> spam_1 = Foo()
> spam_2 = Foo()
>
> spam_1.list.append(42)
> print(spam_2.list)`
>
> At least I think it's a bug. Maybe it's a feature..
>
> Best Regards, Jus
>
>
>
>
>
> --
> Justus Schwabedal
>
> Handy (D): +49 177 939 5281
> email: jschwabedal at googlemail.com
> skype: justus1802
>
> Görlitzer Str. 22
> 01099 Dresden, Sachsen
> Germany
>
> Steinkreuzstr. 23
> 53757 Sankt Augustin, NRW
> Germany
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/p.f.moore%40gmail.com
>
More information about the Python-Dev
mailing list