python中的赋值
来源:互联网 发布:学python还要学hadoop 编辑:程序博客网 时间:2024/06/04 23:31
a=2
b=3
这个时候,a==b和a is b 打印的都是True。因为a和b指向了同一个对象
a=[]
b=[]
而这个时候,a==b打印的是True,a和b的对象相同,但是a is b 打印的是False,因为没有指向同一个对象
a=[0]
b=a
a[0]=1
print b[0]
打印的为1,a==b和a is b 打印的都是True。
究其原因:
1 python里的不变类型:整型,字符串,元组;正好包含整型
2 python的列表为可变型
3python的赋值语句包含了三个含义:
例子:a=2:
首先在内存创建一个对象叫做2
然后创建一个对象叫做a,也就是大家认为的变量。
最后=意味着将一个引用从a指向2。
a=2语句运行完成。
然后大家又会问了:
a=2
b=2
这个会发生什么事情:
a=2解释过了
b=2也是这样的,只不过因为整型是不可变型,在内存中缓存了2,所以第一步省略了,直接将b指向了2
然后又会问了:
如果这个时候这样:
b=3
会怎么样:
b会指向对象3,a依然指向2
然后如果这个时候:
a=1
那么这个时候2的内部的引用计数器发现为0(内存中:一部分表明对象类型;一部分表明有几个引用指向了自己),那么就是没有对象指向它了,那么就会被垃圾回收\了。
0 0
- python中的赋值
- python中的赋值
- python中的变量赋值问题
- python中的增量赋值 **=
- python中的对象赋值(等号赋值、深复制、浅复制)
- Python中的list赋值问题:同一性问题
- python 中的赋值语句的运用
- python 中的赋值、引用、拷贝、作用域
- python中的赋值、浅拷贝、深拷贝
- Python中的对象赋值与拷贝
- 2.3 python中的变量和赋值 [python入门教程]
- python 赋值
- python赋值
- python 赋值
- python 中的赋值操作,与c/c++的对比
- 深入理解 python 中的赋值、引用、拷贝、作用域
- Python中的对象赋值、浅拷贝与深拷贝
- python中的赋值操作,与c++做对比
- 对分查找的循环与递归
- oracle数据库
- 关于python中带下划线的变量和函数 的意义
- 思路很简单系列 不过带坑【水水水】
- 集合框架(Map集合/双列集合)
- python中的赋值
- Spring中的@Transactional深度分析之二
- C#-Struct简单的用法
- 结构-01. 有理数比较(10)
- mysql Error 1040 too many connection解决办法
- Handler, MessageQueue, Runnable与Looper
- hdoj1000
- jsp基础知识
- Digital Roots 思路简单 【水】