下面看一道题目:
a = 3
b = a
a = 5
print(a,b)
程序最后输出的a,b值分别是多少呢?
先想一想,然后我们执行一下看看正确答案:
正确答案 a 的值是5, b的值是3,为什么b的值没有随a的值的变化而变化?下面分析一下原因:
这里先介绍一个函数id(), 它可以查看变量的内存地址;好了,下面开始分析:
将程序拆分一下,先将3赋给a, 然后查看一下内存地址
再将a赋给b,然后查看b的内存地址
可以看出,b和a的内存地址是一样的
再将5赋给a, 查看a的内存地址
可以看到a的内存地址发生了变化,a指向了一个新的内存地址。
整个过程如下图所示: