最近新学习Python,其变量的不需定义类型真是让我一头包。
#coding=utf-8
def test(num):
print(str(id(num))+" >>> 2")
num = 100
print(str(id(num))+" >>> 3")
num = 200
print(str(id(num))+" >>> 1")
test(num)
print(str(id(num))+" >>> 4")
1698577328 >>> 1
1698577328 >>> 2
1698574128 >>> 3
1698577328 >>> 4
通过输出我们可以看到1,2,4的内存地址都是一样的,3的发生了改变。我们一步步的解析这个过程:
1:创建一个变量num,值为200,内存地址为1698577328.
2:进入test方法,将num的引用传递给test方法的形参num,所以形参num指向的内存地址跟传递给他的num一样,所以输出为1698577328。
3:开辟一块内存,存的值为200,并且将形参num指向这块内存,所以形参num值变为200,并且指向的内存地址改变为169857412