मैं बस कुछ स्ट्रिंग जोड़तोड़ शुरू कर रहा हूं और इस सवाल को पाया। मैं शायद ओपी की तरह कुछ करने की कोशिश कर रहा था, "हमेशा की तरह"। पिछले जवाबों ने मेरा भ्रम दूर नहीं किया, लेकिन इसके बारे में थोड़ा सोचने के बाद आखिरकार मुझे "मिल गया"।
जब तक a, b, c, d, और eएक ही मूल्य है, वे एक ही जगह पर संदर्भित करें। स्मृति बच जाती है। जैसे ही चर के अलग-अलग मूल्य होने लगते हैं, उन्हें अलग-अलग संदर्भ मिलने लगते हैं। इस कोड से मेरा सीखने का अनुभव आया:
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
मुद्रित आउटपुट है:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something