[Python-Dev] Possible bug in class-init, lookin for mentors
"Max Zettlmeißl"
max at zettlmeissl.de
Fri Apr 21 11:18:30 EDT 2017
On 21 April 2017 at 12:09, Justus Schwabedal <jschwabedal at gmail.com> wrote:
> I possibly found a bug in class initialization and would like to fix it.
>
> Here comes the bug-producing example:
>
> `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..
>
It is not a bug.
It is the way in which Python handles mutable keyword arguments.
If you want to use something in this way you should go with
def __init__(self, bar=None):
if bar is None:
bar = []
More information about the Python-Dev
mailing list