Code: Alles auswählen
class foo(object):
def __init__(self, bar):
self.bar = bar
li = []
f = foo(1)
li.append(f)
f.bar = 2
li.append(f)
print li[0].bar
print li[1].bar
2
2
Code: Alles auswählen
import copy
class foo(object):
def __init__(self, bar):
self.bar = bar
def __getslice__(self, a, b):
return copy.copy(self)
li = []
f = foo(1)
li.append(f[:])
f.bar = 2
li.append(f[:])
print li[0].bar
print li[1].bar
1
2
Geht das auch eleganter? Ich wollte gerne das ein Objekt von "foo" nicht als Referenz sondern als Kopie in die Liste gepusht wird. Die Methode mit Überladung von "getslice" und "copy.copy" erscheint mir da nicht wirklich gut, da mein eigentliches Objekt sich nicht wie eine Liste verhält.
lg