Seite 1 von 1

[gelöst] Kopieren eines Objekts - Wie geht das??

Verfasst: Freitag 2. Februar 2007, 12:00
von antaeus
Jetzt programmiere ich "schon" ein halbes Jahr in Python aber über dieses Problem bin ich erst heute morgen gestolpert:

Ich muss eine Kopie eines Objekts anfertigen. Die Kopie wird verändert und danach zerstört. Ziel ist, dass das ursprüngliche Objekt nicht verändert wird.

In C++ braucht man dazu den Copy Constructor. Wie geht das in Python? Ich suche jetzt schon den halben Morgen in meinem Buch, das schweigt beharrlich zu dem Thema und Tante Google spuckt nur Unbrauchbares aus!

Das Problem ist v.a., dass das Objekt, welches ich kopieren möchte, wiederum mehrere andere Objekte besitzt, die ebenfalls mitkopiert werden müssen. D:h. so etwas wie einen Copy Constructor zu schreiben (bzw. sind es in dem Falle ja eher mehrere Copy Constructors) wäre sehr viel arbeit. Kommt man da in Python irgendwie "drum rum"??

Wäre für eure Tipps sehr dankbar!
A.

Verfasst: Freitag 2. Februar 2007, 12:06
von antaeus
Mist! Kaum postet man, findet man die Antwort selbst *gg*

Code: Alles auswählen

import copy

x = X()

y = copy.copy(x) 
y2 = copy.deepcopy(x)
So einfach ist das. Ich liebe Python

Verfasst: Freitag 2. Februar 2007, 18:38
von mitsuhiko
antaeus hat geschrieben:Mist! Kaum postet man, findet man die Antwort selbst *gg*

Code: Alles auswählen

y = copy.copy(x) 
y2 = copy.deepcopy(x)
Was du evtl. noch nicht gefunden hast: einen "Copy Konstruktor" kann man in Python nachbilden indem man __copy__ und/oder __deepcopy__ definiert. Je nach Verwendung steht es dir frei eine oder beide Methoden zu implementieren.