Referenzen und Instanzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

hallo miteinander

habe eine Frage zu Instanzen, ein Beispiel
a = 10
hier referenziert a den Wert 10. Die Zahl 10 ist eine Instanz und wird
irgendwo im Speicher abgelegt.
Meine Frage zu der Variable a, wie wird das verwaltet, es muss doch irgendwo im Speicher abgelegt werden oder?

danke kostonstyle
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

kostonstyle hat geschrieben:Meine Frage zu der Variable a, wie wird das verwaltet, es muss doch irgendwo im Speicher abgelegt werden oder?
Wie wird was verwaltet? Die Variable selbst? Die werden in Dictionaries gespeichert (ggf. wird das auch zu einfachen Array-Zugriffen hin optimiert), die im aktuellen Zustand(frame-Objekt) der virtuellen Maschine von Python gespeichert sind. Ich bin jetzt nicht so drin in dem Thema, ich hoffe das war soweit korrekt.
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Zu Deiner Frage.. Ja.. wird im Speicher abgelegt... Könntest du etwas konkreter werden?

Gruß
alpha
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

ich meine variable a, irgendwie muss diese auch verwaltet werden oder?
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

ich meine variable a, irgendwie muss diese auch verwaltet werden oder?
Müssen eigentlich nicht aber um Dich zu beruhigen, ja wird sie. Macht der Interpreter ganz gut und ist aus Pythonsicht ein Problem-anderer-Leute-Feld.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Variablen werden bei CPython in sogenannten Frames verwaltet, die - wenigstens konzeptionell - jeweils zwei dict-Objekte für lokale und globale Variablen haben.

Also so:

Code: Alles auswählen

f = Frame() # kann man so nicht direkt erzeugen
f.locals['a'] = 10
Stefan
Antworten