WTF Python課堂(一)


Hello~大家好~這裏是Paradoxical的wtf課堂第一期,接下來Paradoxical會和你一起學習python的奇妙特性哦~


今天學習的是類和對象的相關知識。

圖片


可以看到第一句代碼和第二句代碼對比了兩個對象,而兩個對象應該是不同。但是第三句代碼對比兩個對象的哈希值卻是相同的。第四句代碼對比了兩個對象在內存中的地址,也是相同的。這是爲啥鴨?來看看解釋。

圖片


原來是跟對象的生命週期有關。解釋中對類進行了改寫,讓我們更加清晰地看到對象的創建和銷燬過程。

第一句代碼用is比較兩個對象,因爲同一行代碼連續創建兩個對象,第一個對象還沒銷燬時就創建了第二個對象,所以它們的在內存中的地址不同,用is比較的結果是False。

而第二局代碼創建第一個對象後把內存地址傳給id()後就銷燬了,創建第二個對象時就會在同一個內存地址創建,所以它們的對比它們的內存地址會是True。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章