你真的知道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內存的機制吧

是這樣的 呵呵

 == 就很簡單了,只要值一樣就行了

      

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM