Ich fange gerade mit einigen String-Manipulationen an und habe diese Frage gefunden. Ich habe wahrscheinlich versucht, so etwas wie das OP zu machen, "normal ich". Die vorherigen Antworten haben meine Verwirrung nicht geklärt, aber nachdem ich ein wenig darüber nachgedacht hatte, habe ich es endlich "verstanden".
Solange a
, b
, c
, d
, und e
den gleichen Wert haben , verweisen sie an der gleichen Stelle. Speicher wird gespeichert. Sobald die Variable unterschiedliche Werte aufweist, erhalten sie unterschiedliche Referenzen. Meine Lernerfahrung ergab sich aus diesem Code:
import copy
a = 'hello'
b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
e = a + 'something'
a = 'goodbye'
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
Die gedruckte Ausgabe ist:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something