本文摘自php中文网,作者巴扎黑,侵删。
这篇文章主要介绍了Python中的is和==比较两个对象的两种方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下Python中的is和==比较两个对象的两种方法
在Python中有两种方式比较两个对象是否相等,分别是is和==,两者之间是不同的
==比较的是值(如同java中的equals方法)
is比较的是引用(可以看作比较内存地址, 类似于java中的==)
对于:
1 2 3 4 5 6 7 8 |
|
由于1和'1'不管在值上面还是在引用上面都不同,所以结果都为false
对于:
1 2 3 |
|
这里有一个知识点,简单来说,对于整形这种primitive type,引用比较就是值比较,然而,Python在实现整型中采用了这种方式,对于位于-5到256之间的数字,在内存中保留数组存储这些数字,下次使用时候直接引用。而在此范围外的数字,则会新建int对象
举个简单的example,如下代码所示:
1 2 3 4 5 6 7 8 9 10 11 |
|
如上例子所示,只要是在-5~256之间的整形,python不会给变量初始化新的内存空间,但是一旦超出256,则会分配新的空间。
通过打印两个对象的id也可以直接的看出两个对象内存地址的区别,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
以上就是Python中的is和==比较两个对象的方法详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。