在大多数编程语言中,值的传递通常可以分为两种形式“ 值 传递 与 引用 传递”,但是在Python中变量的传递基本上都是引用传递。
a = 10
第一步:首先在计算机内存中创建一个数值10(占用一块内存空间)
第二步:在栈空间中声明一个变量,如a
第三步:把数值10的内存地址赋予给变量小a,形成所谓的“引用关系”
可以使用内置方法id(),其参数就是要显示的变量信息 => id(变量名称)
a = 10
print(id(a))
a = 10 b = a print(id(a)) print(id(b))
运行结果:
说明:由以上运行结果可知,当我们把一个变量赋予给另外一个变量时,其两者指向的内存地址相同。就说明a和b指向了同一块内存空间,原理图如下:
思考:如果在b = a以后,我们改变了变量a的值,问变量b是否会受到影响?
# a = 10 # print(id(a)) a = 10 b = a a = 100 print(b) # 10 或 100 print(id(a)) print(id(b))
原理图:
总结:不可变数据类型(数值)在赋值以后,其中一个值的改变不影响另外一个变量,因为两者指向空间地址不同。