python中的賦值操作


參考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(寫的蠻好)

python中的賦值操作“=”和C++中的賦值操作"="還是有很大區別的,這點需要注意!

比如例1:

C++和python操作后會得到同樣結果,但是兩者在PC中的操作其實不同;

 (1)python:代碼在內存中的操作示意圖:

首先內存會為3創建一個數據單元,再讓b指向這個單元;然后b+5得到8,內存又會為這個8創建一個數據單元,再讓b指向這個單元(b指向的內存地址發生了改變!);

(2)C++:代碼在內存中的操作示意圖:

首先內存會創建一個int類,並分配對應的數據單元,類名為b,b類中存儲數據3,然后b+3則對b類中的數據3加5變成8(b指向的內存地址沒有發生改變!

由上可知:

(1)C++通過操作內存地址而間接操作數據,數據處於被動地位;Python則是直接操控數據,數據處於主動地位,變量只是作為一種引用的關系存在,而不再擁有存儲的功能;

(2)可以簡單地認為“數據在python中被稱為對象(object)”,對象不能被覆蓋,也不能被直接銷毀(python中有垃圾回收機制來回收不用地對象,比如引用計數機制);

了解了上面,再說一個例子就好理解了,見下面:

這里要注意:對象分為可變對象(單個元素)和不可變對象(集合:list、tuple、dict等),所以會有上面地輸出信息;

 


免責聲明!

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



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