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

引用变量

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

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

a = 10

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

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

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

验证Python中变量的引用关系

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


a = 10
print(id(a))

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


a = 10
b = a    #  把变量 a 赋予给另外一个变量 b  的影响-------内存地址不变
print(id(a))
print(id(b))

运行结果:

说明:

由以上运行结果可知,当把一个变量赋予给另外一个变量时,其两者指向的内存地址相同

说明a和b指向了同一块内存空间,原理图如下:

思考:

如果在b = a以后,我们改变了变量a的值,问变量b是否会受到影响?


a = 10
b = a    # 把变量 a 赋予给另外一个变量 b  的影响-------内存地址不变

a = 100    # 把变量 a 重新赋值-----内存地址变  -----新的内存地址
print(b)  # 所以打印出,是 10 还是 100????----是 10

print(id(a))
print(id(b))

原理图:

总结:

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

  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唯元素

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值