Python 学习之一: 变量名及赋值操作的本质

python 中的变量名有些类似于C++中的指针的概念.

python 中的赋值操作改变的并不是内存中变量的值, 而是变量名指向的变量.

>>> var = 3
>>> tmp = var
>>> var
3
>>> tmp
3
>>> id(var)
10417272
>>> id(tmp)
10417272
>>> id(3)
10417272


>>> var = 4
>>> id(var)
10417260
>>> id(4)
10417260
>>> id(tmp)
10417272

>>> tmp
3

>>> var
4
>>>

上边的例子指出, 当执行 "var = 3" 时, python会在内存中分配一块空间, 把"3"赋值给这块空间.

然后, 将变量名 "var" 关联到分配的内存.

当执行 "var = 4" 时, python 会再分配一块内存并存入"4", 然后将变量名 "var" 关联到"4" 所在内存.

此时"3"所在的内存并没有变化.


对应的操作是:

>>> var = 3

分配内存编号10417272, 存入"3"

将"var" 关联到 10417272

>>> var = 4

分配内存编号10417260, 存入"4"

将"var" 关联到 10417260

>>> tmp
3

>>> id(tmp)
10417272

此时10417272中的内容没有破坏, 仍然是"3", 并且"tmp"仍然指向10417272


事实上,当没有任何变量名指向一个内存中的变量市, python将释放该内存变量



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值