Python变量在计算机内存中的表示
2015-09-07 10:06
288 查看
转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000
当我们写:
时,Python解释器干了两件事情:
在内存中创建了一个
在内存中创建了一个名为
也可以把一个变量
最后一行打印出变量
执行
执行
执行
所以,最后打印变量
当我们写:
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'了。
相关文章推荐
- 为什么开始写博客了?
- WebBrower自定义HTTP标头
- iOS学习笔记23-框架搭建之一------引入ASIHttp框架
- 转载 [置顶] 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
- 算法导论基础篇:两个队列实现一个栈
- http://www.cocoachina.com/ios/20150907/13339.html
- Android笔记(二十三)HttpClient
- 通过XMLHttpRequest和jQuery实现ajax的几种方式
- 掌握HttpClient类的GET和POST请求访问服务器步骤!
- Android笔记(二十二) HttpURLConnection
- Linux 网络配置
- 根文件系统的挂载过程 http://blog.sina.com.cn/s/blog_67e2ef6a0100s8kf.html
- VC获取并修改计算机屏幕分辨率
- VC获取并修改计算机屏幕分辨率
- VC获取并修改计算机屏幕分辨率
- VC获取并修改计算机屏幕分辨率
- 数据结构之自建算法库——顺序表
- http tcp ip 模型解释 ngix expoll select apache
- 数据结构中基本运算验证性实践路线建议——以顺序表为例
- 网络数据挖掘程序的设计