查看变量地址
‘==’是用来判断值相等(值比较)
‘is’用来判断变量地址是否相等(引用比较)
ps:Python是一个彻底的面向对象的语言,Python的变量都是以Object形式存在的。Python似乎有一个类似于Java的对象池,为了追求效率,Java会维护对象池,对整数来说,Java会将128以内(即0到127)的整数存在pool里。若用户要求创建一个128以内的Integer时,JVM不会真去创建一个新的对象, 而是直接从这个pool里将对应整数对象的引用返回。而Python也有类似的机制,但范围不是128以内了。通过测试得出Python的范围是(-5)~(256)(现在我知道了,这个东西叫小整数对象池。。。)
Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的。对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。
原文:https://www.cnblogs.com/yrzsp/p/11019416.html