Python高级编程——2.is和==
来源:互联网 发布:程序员 多个显示器 编辑:程序博客网 时间:2024/05/31 11:03
is:判断的是两个内存地址是否一致
==:判断的是两个变量的值是否一致
以上例子说明了is和==的区别,即a和b的值相等,但是在内存中的地址不一样,所以a==b返回的是True,a is b返回的是False。声明a=1000时,是在堆内存中为a开辟了一个值为1000的空间,a中保存的是这个数值的地址,b=1000,这时在内存中又开辟了一个值为1000的地址,在b中保存了该地址,这个地址与a中必然不同。
但是有一点需要注意的是,在数值在-5~256之间时,a==b和a is b返回的都是True,请看下面的例子:
这是因为在堆内存中开辟了一个小整型缓存区,数值在-5~256之间,这时在声明变量赋值在此数值范围中间时,变量a的引用就指向缓存区-5的位置,在a中保存的是-5的地址,b=a也就是b也保存了a中-5的地址,所以地址和值都是相同的。也是就说数值处于-5~256之间,系统不会再另外开辟空间,而是之间将a或者b的引用指向内存缓存区对应值的位置。
关于以上可用下面图示表明:
字符串也是如此,在此不过多赘述。
阅读全文
0 0
- Python高级编程——2.is和==
- Python高级编程——6.函数
- Python高级编程——12.系统编程(多进程和多线程)总述
- Python:== 和 is
- python is 和==
- python ==和is
- Python学习笔记(七)—Python中is和==(is not和!=)的区别
- Python高级编程——8.python是一门动态语言
- Python高级编程——14.网络编程
- Python高级编程——1.包(lib)和模块(module)
- Python高级编程——4.生成器和斐波那契(fibonacci)函数
- Python高级编程——15.新式类和经典类的区别
- python中的is、==和cmp()
- python is 和==的区别
- python中的==和is
- python中的is和==
- Python is和==区别
- 详解Python中的is和==
- 从一道题看四边形不等式
- c++类
- Ambari-Server Rest API处理3(用户鉴权、操作权限检查管理)
- 通过case语句启动rsync服务的案例演变
- HDU2048 神、上帝以及老天爷
- Python高级编程——2.is和==
- Time
- spring相关知识点
- Android中Serializable和Parcelable序列化对象详解
- bzoj 2818 Gcd 欧拉函数求和
- 错题1
- D3
- 大猪生小猪
- 记一次公司事故,服务器无法登陆图像用户界面