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.
Intuitiv würde man davon ausgehen, dass Python zunächst für x einen Speicherort wählt und dort das Objekt (Zahl) 3 abspeichert. Anschließend wird der Variablen y der Wert von x zugewiesen. In C und vielen anderen Programmiersprachen würde auch für y ein eigener Speicherort bestehen, in dem nun die Zahl 3 hineingeschrieben würde. Python geht anders vor: x ist eine Variable mit dem Objekt 3 und y ist eine Variable mit dem "selben" (nicht "gleichen") Objekt. x und y "zeigen" auf das gleiche Objekt. In der letzten Zeile wird y nun der Wert 2 zugewiesen, jetzt muss ein neues Objekt angelegt werden und y "zeigt" auf einen neuen Speicherort.
Soweit dachte ich ich habe es verstanden doch doch warum geht nicht ?
>>> x = 3
>>> x = y
>>> y = 2
bin verwirrt
@muvo2k: Warum sollte das gehen, beziehungsweise was erwartest Du denn da? In der ersten Zeile wird `x` an den Wert 3 gebunden. In der zweiten Zeile wird `x` an den Wert gebunden an den `y` gerade gebunden ist. Und da ist das Problem wenn `y` vorher an nichts gebunden wurde, was sollte ausser einem `NameError` oder `UnboundLocalError` denn an der Stelle passieren? Wenn das keine Ausnahme auslöst und direkt danach ``print x`` ausgeführt würde, was sollte *da* dann als Wert für `x` ausgegeben werden?
Wovon man ”intuitiv” ausgehen würde, hängt übrigend davon ab mit was für Programmiersprachen man vorher Erfahrungen gemacht hat. Und falls mit noch keiner Programmiersprache Erfahrungen bestehen, dann ist die Frage IMHO komplett offen.
So Begriffe wie Speicherort oder Variablen sind auch in diesem Fall ziemlich unzutreffend, weil Python kennt keine Speicherorte und hat dementsprechend keine Pointer um auf diese zu verweisen. Auch der Begriff Variable ist nicht wirklich zutreffend.
Was Python hat sind Objekte (wie etwa die 2 oder die 3 die Objekte vom Typ 'int' sind) und Namen (in diesem Fall x, y, diese sind keine Objekte und haben dementsprechend auch keinen Typ).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice