I recently discovered a strange behavior with a simple situation.
class MyClass:
def __init__(self, data=[]):
self.data = data
def add(self, data):
self.data.append(data)
def see(self):
return self.data
r = MyClass()
r.add("nice item")
print(r.see())
u = MyClass()
print(u.see())
Running this script returned this
['nice item']
['nice item']
How is that possible ? I assume r and u are different instance of MyClass but u return data added into r. Anybody can explain ?