您的位置:首页 > 理论基础

Python变量在计算机内存中的表示

2015-09-07 10:06 288 查看
转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000

当我们写:

a = 'ABC'

时,Python解释器干了两件事情:

在内存中创建了一个
'ABC'
的字符串;

在内存中创建了一个名为
a
的变量,并把它指向
'ABC'


也可以把一个变量
a
赋值给另一个变量
b
,这个操作实际上是把变量
b
指向变量
a
所指向的数据,例如下面的代码:

a = 'ABC'b = a
a = 'XYZ'
print(b)


最后一行打印出变量
b
的内容到底是
'ABC'
呢还是
'XYZ'
?如果从数学意义上理解,就会错误地得出
b
a
相同,也应该是
'XYZ'
,但实际上
b
的值是
'ABC'
,让我们一行一行地执行代码,就可以看到到底发生了什么事:

执行
a = 'ABC'
,解释器创建了字符串
'ABC'
和变量
a
,并把
a
指向
'ABC'




执行
b = a
,解释器创建了变量
b
,并把
b
指向
a
指向的字符串
'ABC'




执行
a = 'XYZ'
,解释器创建了字符串'XYZ',并把
a
的指向改为
'XYZ'
,但
b
并没有更改:



所以,最后打印变量
b
的结果自然是
'ABC'
了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: