2017-03-20 6 views
0

Ich habe eine Instanz einer Klasse, die ich in einer anderen Variable speichern möchte, so dass ich Änderungen am Original vornehmen kann, ohne dass der in der anderen Variable gespeicherte Zustand betroffen ist.So speichern Sie Objektinstanz in eine Variable in Python

Alle Änderungen, die ich am ursprünglichen Objekt (nn) vornimmt, werden jedoch im zweiten Objekt (nn_2) repliziert.

Code:

nn_2 = nn 
nn_2.LEARNING_RATE = 3 
nn.LEARNING_RATE = 1 
print(nn_2.LEARNING_RATE) 
print(nn.LEARNING_RATE) 

Ausgang:

1 
1 

Was wäre die Art und Weise, dies zu erreichen?

Danke,

+0

Danke dafür! Ich habe gesucht, wie man eine Instanz speichert, anstatt zu kopieren, was wahrscheinlich der Grund ist, warum ich die Antwort nicht finden konnte. – Hamid

Antwort

0

Sie copy.deepcopy() verwenden sollten, Objekte zu kopieren, so dass sie auf das gleiche Objekt verknüpfen nicht.

from copy import deepcopy 

nn_2 = deepcopy(nn) 
nn_2.LEARNING_RATE = 3 
nn.LEARNING_RATE = 1 
print(nn_2.LEARNING_RATE) 
print(nn.LEARNING_RATE) # should be different now 
+0

Danke, das war perfekt! – Hamid

Verwandte Themen