Hallo.
Wie ist es möglich, eine Variable nicht als Verweis zu definieren, sondern sie wirklich zu kopieren? Ich wollte folgendes machen:
DBLINK = ...
xy = DBLINK
DB.Close()
aber jetzt kann ich ja nicht mehr auf xy zugerifen.
Ich muss es in meinem Fall leider so machen.
Gibt es da irgendeine Lösung?
Variable kopieren
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Code: Alles auswählen
IDLE 1.2.1c1 ==== No Subprocess ====
>>> x = 123
>>> y = x
>>> x == y
True
>>> x = 456
>>> x == y
False
>>> x
456
>>> y
123
>>>
Du musst es schon wieder öffnen.
Also nur weil du die Variable kopierst mit der z.B ein File Opject geöffnet wurde lässt das die Datei nicht offen.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Falsch. Der ==-Operator vergleicht Integers auf ihren Inhalt. Testen auf Identitaet geht mit "is". Und natuerlich aendert sich y nicht, wenn du x nun auf ein anderes Objekt zeigen laesst.Sr4l hat geschrieben:An meinem Beispiel siehst du das y eine Kopie von x ist. Sonst würde sich beim ändern von x auch y ändern.
Code: Alles auswählen
>>> x = 123
>>> y = x
>>> x is y
True
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
y ist keine Kopie von x sondern die Zahl 123 ist an die Namen x und y gebunden.
Mit "x = 456" bindest du 456 an den Namen x, davon erfährt y natürlich nichts weil man das Integer-Objekt (123) gar nicht anfasst.
Aber wieder OnTopic:
Das Datenbank-Objekt ist an den Namen DBLink und xy gebunden.
Entweder stellt das Datenbank-Objekt eine Methode zur Verfügung mit der man das Objekt kopieren kann (was ich aber nicht annehme) oder du machst einfach eine zweite Verbindung auf.
Gruss
y ist keine Kopie von x sondern die Zahl 123 ist an die Namen x und y gebunden.
Mit "x = 456" bindest du 456 an den Namen x, davon erfährt y natürlich nichts weil man das Integer-Objekt (123) gar nicht anfasst.
Aber wieder OnTopic:
Das Datenbank-Objekt ist an den Namen DBLink und xy gebunden.
Entweder stellt das Datenbank-Objekt eine Methode zur Verfügung mit der man das Objekt kopieren kann (was ich aber nicht annehme) oder du machst einfach eine zweite Verbindung auf.
Gruss
@sprudel: Man kann nicht alle Objekte kopieren und ich denke mal Deine Datenbankverbindung gehört dazu. Da dürfte Zustandsinformation auf der Seite der Datenbanksoftware bestehen, auf die Python keinen Zugriff oder Einfluss hat.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Und wieder ein Kandidat für [wiki]Objekte[/wiki]...Sr4l hat geschrieben: An meinem Beispiel siehst du das y eine Kopie von x ist. Sonst würde sich beim ändern von x auch y ändern.