Nach http://www.effbot.org/zone/python-objects.htm Lese ich mit dieser Frage gelassen bin: wenn a=1
schafft ein ganzes Zahl-Objekt und bindet es an den Namen a
, b=[]
erstellt ein leeres Liste-ObjektWas passiert, wenn ich eine Liste wie c = [1] in Python in Bezug auf Namensobjektbindungen anlege?
In Python, und bindet es b
zu nennen, was passiert, wenn ich zB anrufe c=[1]
?
Ich nehme an, das erstellt ein List-Objekt und bindet es an den Namen c
, aber wie wird die 1
genau behandelt? Wie sieht der eigentliche Inhalt des Listenobjektes unter der Haube aus? Besteht es aus einem Integer-Objekt oder einem Verweis auf ein "separates" Integer-Objekt? Ist es in Ordnung, an z.B. c[0]
als Name an ein Listenelement gebunden?
Und was ist mit dem folgenden:
d=1 # creates int(1)-object and binds it to d
e=[d] # creates list-object and binds it to e, but what happens with d?
Wird der Inhalt des Liste-Objekts (e
genannt) ein Verweis auf das ganzen Zahl-Objekt namens d
oder ein neues Ganzzahl-Objekt?
Ich denke, die Antwort liegt in diesem Zitat von Herrn Lundh, von der Quelle oben erwähnt, aber ich bin immer noch ein klein wenig verwirrt:
Sie dann auf das Objekt eine Methode aufrufen, zu sagen Er fügt ein Integer-Objekt an sich selbst an. Dadurch wird der Inhalt des Listenobjekts geändert, der Namespace wird jedoch nicht berührt und das Integer-Objekt wird nicht berührt.
Auch ich glaube, ein Teil der Antwort ist hier zu finden: Python; name bindings are not object references?, aber ich bin immer noch auf der Suche nach mehr Einblick.