Python解釋器內存划分
Python代碼在運行是,Python解釋器會向操作系統申請運行內存,將代碼加載到內存中運行,如圖所示:
Python 解釋器為了利用好有限的內存空間,將內存進行了如圖的划分:
不可變類型 – 內存模型
不可變類型:數據在內存中一旦創建,就不能修改了。
Python 為了優化程序執行速度,將字符串、整數定義成了不可變類型,一旦聲明出來,數據就不能修改了。
字符串操作
字符串是內存中使用特別的多的數據,所以 Python對字符串進行了優化,字符串是不可變數據類型,所以不能直接修改字符串內部的數據。
當我們通過變量修改數據時,內存中將變量指向了一個新的內存地址。原來的字符串數據依然存在,並沒有修改。
整數操作
整數和字符串一樣,在程序中也是一個經常操作的數據。所以也對整數進行了優化,Python 解釋器在加載的時候,將 -5~256 的整數直接在內存中創建好了開發人員要使用的時候直接使用即可,不需要創建對象。
整數也是不可變數據,如果需要修改變量中的整數數據時,就是將變量指向了一個新的內存地址,原來在內存中的數據不會收到影響。
可變類型 – 內存模型
可變類型就是可以修改數據內部的數據,如列表
Python 中的列表可以存儲多個數據,存儲的多個數據可能要參與業務處理需要經常變化,所以列表中的數據在語法上被定義成了可以修改的數據。如圖所示:
軟件運行的過程
軟件是在計算機上運行,安裝在計算機硬盤中的,計算機的基本組成如下圖:
軟件在計算機中運行時,是運行在系統的內存中的,平時使用電腦的時候打開軟件較多的話,電腦會卡頓(內存空間不足!)
編程語言編寫的代碼,就是在編寫軟件,所以代碼的運行就是運行在內存中的。
————————————————
版權聲明:本文為CSDN博主「zzzzls~」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_36078992/article/details/105375046