For the first time, I have been bitten by Python. The below code
produces the results:
False
True
when I initially expected the results:
False
False
It took me a while to work out that default keyword argument values
are likely only evaluated once, which caused the empty dict to be
shared across classes...
It certainly something newbie python coders should look out for!
Simon W.
---snip-here---
class X(object):
def __init__(self, d={}):
self.d = d
a = X()
b = X()
print a is b
print a.d is b.d
---snip-here---
produces the results:
False
True
when I initially expected the results:
False
False
It took me a while to work out that default keyword argument values
are likely only evaluated once, which caused the empty dict to be
shared across classes...
It certainly something newbie python coders should look out for!
Simon W.
---snip-here---
class X(object):
def __init__(self, d={}):
self.d = d
a = X()
b = X()
print a is b
print a.d is b.d
---snip-here---
Comment