标签:相等 调用 比较 div 引用 false strong 实现原理 使用
Python比较两个对象是否相等有两种方法,简单来说,它们的区别如下:
1,is 是比较两个引用是否指向同一个对象(引用比较)
2,==是比较两个对象的值是否相等。
>>>a = [2,3,4] >>>b = a >>>b is a True >>>b = a[:] # 切片操作重新分配了对象 >>>b is a False >>>b == a #值是相等的 True
实现原理
is 是比较两者是否同一个对象,比较的是内存地址(id是否相等)。
==是值比较,不可变对象,列如int,str,它会直接进行值比较。对于python已知的对象,会调用__sq__函数来比较。
对象缓存机制
Python会对比较小的对象缓存,下次用到时,回去缓存区查找,如果找到,不回再去开辟新的内存,而是继续把小对象的地址赋给新的值
1 c = 1 2 d = 1 3 print(c is d) 4 True 5 6 1000 is 10**3 7 False 8 1000 == 10**3 9 True
通过计算得到的赋值不会使用缓存区。
标签:相等 调用 比较 div 引用 false strong 实现原理 使用
原文地址:http://www.cnblogs.com/youyuan-wang/p/6090680.html