A
abcd
class Foo:
def __init__(self, name, data=[]):
self.name = name
self.data = data
def addData(self, val):
self.data.append(val)
f = Foo('a')
f.addData(1)
f.addData(2)
f2 = Foo('b')
print f.name, f.data
print f2.name, f2.data
----------------------------
OUTPUT
---------------------------
a [1, 2]
b [1, 2]
.....why would f and f2 contain the same data??
however, if I do this instead....
f = Foo('a')
f.addData(1)
f.addData(2)
f2 = Foo('b', [])
print f.name, f.data
print f2.name, f2.data
----------------------------
OUTPUT
---------------------------
a [1, 2]
b []
Any ideas? is this a bug?
def __init__(self, name, data=[]):
self.name = name
self.data = data
def addData(self, val):
self.data.append(val)
f = Foo('a')
f.addData(1)
f.addData(2)
f2 = Foo('b')
print f.name, f.data
print f2.name, f2.data
----------------------------
OUTPUT
---------------------------
a [1, 2]
b [1, 2]
.....why would f and f2 contain the same data??
however, if I do this instead....
f = Foo('a')
f.addData(1)
f.addData(2)
f2 = Foo('b', [])
print f.name, f.data
print f2.name, f2.data
----------------------------
OUTPUT
---------------------------
a [1, 2]
b []
Any ideas? is this a bug?