Python語言中有三個常用的內存存儲區域,分別是:靜態存儲區、棧區和堆區。其中靜態存儲區是指程序中的全局變量和靜態變量。
在Python中定義的全局變量和靜態局部變量都會被分配到靜態存儲區,靜態存儲區在程序運行時就已經被分配好了,無論是否被使用都不會釋放存儲空間。
我們可以使用關鍵字global定義一個全局變量,例如:
global_var = 1 def func(): global global_var global_var = 2
以上代碼中的global關鍵字表示定義的是全局變量global_var,如果不使用global關鍵字,則只是定義了一個局部變量,不會影響到全局變量。
我們可以使用id()函數查看變量在內存中的地址,例如:
a = 1 print(id(a)) #輸出變量a的內存地址
以上代碼輸出的是變量a在內存中的地址,每次執行程序,變量a在內存中的地址都是相同的。
需要注意的是,Python中的函數也是一種對象,也會被分配到靜態存儲區中,但是函數內定義的局部變量和形參是被分配到棧區的。
總的來說,靜態存儲區在Python中是用來存儲全局變量和靜態局部變量的,其特點是在程序運行時就已經被分配好了,無論是否被使用都不會釋放存儲空間。