a=[100] def test(num): num=num+num print(num) test(a) print(a)
此时输出num=[100,100] a=[100] 此时num=num+num 过程是先用[100]+[100]形成了一个临时列表[100,100]然后赋值给num ,前提是num指向的a为可修改变量,然后才可以直接修改a的内容
a=[100] def test(num): num+=num print(num) test(a) print(a)
a和num输出都是[100,100] 此时num直接指向a 直接修改的是a Python 中只要是赋值= 那么必定是引用 即num为a的引用 此时num在运算的过程中分别指向了不同的对象 先是指向a的内存空间 后面是临时[100,100]的内存空间