你真的知道python 的 iS 和 == 吗?

关于python的运算符 is 和  ==,你会觉得很简单嘛,is不就是判断,内存地址是否相等吗,

==不就是判断值是否相等嘛,有什么难的。对,确实简单,但看看下面的:

 

 

 如果  我这样写,a = 5,b= a ,这样很容易理解阿,b指向a指向的内存地址,a is b 是True 很容易理解阿

但是,我是a = 1, b= 1,难道不应该再开一个内存嘛,应该 a is b 是F阿,既然是True,只能说明,a 和b的

内存地址是一样的了,但又看下面,怎么就不是Flase了,这就很奇怪了,我当时就在想,难道python内部已

经存在这些值的内存地址了嘛,没错,python内部有一个常见的数据的池,整数是-5到255,也就是说,a = 300,

b = 300, a is b 是F了,这样也就说的通了,关于字符串为啥一样,大家可以思考一下,内存地址是肯定一样的

应该就是python内存的机制吧

是这样的 呵呵

 == 就很简单了,只要值一样就行了

      

    

 

posted @ 2020-10-20 18:42  我也想18岁  阅读(4950)  评论(0编辑  收藏  举报