不管是什么语言,或许对于初学者总是会在这样一个地方犹豫不决,有以下Python程序:
a = 'ABC'
b = a
a = 'XYZ'
print('a = %s, b = %s' %(a,b))
b输出是多少?
如果你的回答是 : b = XYZ
那么你的思路还没有理清楚,请看输出结果(请忽略除红线标注的部分):
思路,如下图:
按程序次序分析,首先给变量a赋值'ABC',那么a则指向了值‘ABC’存储的地址,然后将a赋值给b,所以b也指向了值‘ABC’的地址,
现在,再将a赋值为‘XYZ’,因为‘ABC’与‘XYZ’是不同的,所以a则改变为指向‘XYZ’的地址。而此时b的指向却没有改变。那么a的值出自然就是 XYZ, 而b值依然还是 ABC。