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 = []
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4