Python---引用变量与可变、非可变类型

引用变量

在大多数编程语言中,值的传递通常可以分为两种形式“  值 传递  与  引用 传递”,但是在Python中变量的传递基本上都是引用传递

变量在内存底层的存储形式

a = 10

第一步:首先在计算机内存中创建一个数值10(占用一块内存空间)

第二步:在栈空间中声明一个变量,如a

第三步:把数值10的内存地址赋予给变量小a,形成所谓的“引用关系”

Python---引用变量与可变、非可变类型_第1张图片

验证Python中变量的引用关系

可以使用内置方法id(),其参数就是要显示的变量信息 => id(变量名称)


a = 10
print(id(a))


把一个变量赋予给另外一个变量的影响


a = 10
b = a
print(id(a))
print(id(b))

运行结果:

Python---引用变量与可变、非可变类型_第2张图片

说明:由以上运行结果可知,当我们把一个变量赋予给另外一个变量时,其两者指向的内存地址相同。就说明a和b指向了同一块内存空间,原理图如下:

Python---引用变量与可变、非可变类型_第3张图片

思考:如果在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))

Python---引用变量与可变、非可变类型_第4张图片

原理图:

Python---引用变量与可变、非可变类型_第5张图片

总结:不可变数据类型(数值)在赋值以后,其中一个值的改变不影响另外一个变量,因为两者指向空间地址不同。

你可能感兴趣的:(python,开发语言,pycharm)