Namen referenzieren Objekte.
Es gibt aber feine Unterschiede in der Art und Weise wie "Skalare" und z.B. Listen: behandelt werden:
Code: Alles auswählen
# Bei
a = 1
b = 1
# passiert nicht das gleiche wie bei:
l1 = [3, 4, 5]
l2 = [3, 4, 5]
Code: Alles auswählen
a = 1
b = 1
print(id(a) == id(b))
"""
True
Das selbe Objekt wird referenziert.
"""
a = 2
print(id(a) == id(b))
"""
False
Wird a ein neuer Wert zugewiesen, wird auch ein neues Objekt erzeugt.
a und b referenzieren jetzt unterschiedliche Objekte
"""
l1 = [3, 4, 5]
l2 = [3, 4, 5]
print(id(l1) == id(l2))
"""
False
Unterschiedliche Listen-Objekte werden referenziert und können unabhängig von einander manipuliert werden
"""
l1[0] = 10
print(l1)
print(l2)
"""
[10, 4, 5]
[3, 4, 5]
"""
k1 = [6, 7, 8]
k2 = k1
print(id(k1) == id(k2))
"""
True
Das selbe Listen-Objekt wird referenziert und Manipulationen über k1 betreffen auch k2
"""
k1[0] = 10
print(k1)
print(k2)
"""
[10, 7, 8]
[10, 7, 8]
"""