id()是python的内置函数,用于返回对象的内存地址
In [32]: var1 = 5
In [33]: var2 =var1
In [34]: id(var1)
Out[34]: 140725209405216
In [35]: id(var2)
Out[35]: 140725209405216
上面代码中var1变量名引用指向了5这个对象,var2和var1同时指向了5,通过id函数查看对象的内存地址
>>> a=1
>>> id(a)
140725209405088
>>> b=3
>>> id(b)
140725209405152
>>> c=5
>>> id(c)
140725209405216
>>> d=5
>>> id(d)
140725209405216 #c和d变量指向同一块内存区域value是5
#比较c和d变量的值是否相等,返回bool值
>>> c==d
True
#比较c和d变量引用所指向的内存地址是否相等
>>> c is d
True
>>> e=9999999
>>> id(e)
2372337564080
>>> f=9999999
>>> id(f)
2372337564048
>>> e==f
True
>>> e is f
False
由运行结果可知:
1、Python缓存了整数和短字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句,也只是创造新的引用,而不是对象本身;
2、Python没有缓存长字符串、列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象。