python的身份判断可以用 is eg. a is b判断。
a = 20
b = 20
print(a is b, id(a), id(b))
这样会输出true。查询a和b的id,是一样的,type和val自不必说。
在网上查id属性,说是类似于c/c++的指针指向的内存空间。
如果是c语言,那么两个变量指向的内存空间必然不同,可python为何id相同呢?
也就是说a和b两个变量的内存空间相同?
a = 20
b = 20
print(a is b, id(a), id(b))
a += 50
b += 10
print(a is b, id(a), id(b))
对a和b进行不同的运算后,就不同了。
所以,这个id到底应该怎么理解呢?
这么理解,变量是容器,值是系统给的标签。。开始你给a和b都贴了标签20,指向同一个系统内存,就是
20所对应的地址。所以,是同一个。
然后,a和b给个不同值,或者不同操作后,值变了,标签不一样了呀,一个贴70,一个贴30,对应的就不一样了。如果系统地址是货架,那它俩就一个放70,一个放30了。之前一样就摞一堆了,哈哈
https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg
这里的地址值是转换之后的数据, 另外, 这里也涉及到缓存优化的设计