當前位置:成語大全網 - 書法字典 - PYTHON中的變量作用域和內存分配

PYTHON中的變量作用域和內存分配

原理:python中任何變量都是對象,所以參數只支持引用傳遞。即通過名稱綁定機制,將實參的值和形參的名稱綁定在壹起,形參和實參指向內存中的同壹個存儲空間。

回答問題2:

每當妳給壹個變量賦值時,妳就把這個名字的值存儲在壹個新的內存中。

鎳打印

(id

(壹))

妳會發現每次f(x),a的內存地址都是新的。所以在妳的第二個問題中

和前面的L[]名字不壹樣,所以append上的A是[4,3,3](簡單來說,L=和L=是兩個名字不壹樣的東西)。

討論問題1:

在妳的程序中,a = 1,a = 2,a = 5是int對象的三個實例,所以它們占用了三段不同的內存,在執行程序回收內存時自然會被清理掉;l是通過列表的append方法進行更改時的打印結果。

(f(1))

打印

(f(2))

打印

(f(5))對壹個實例進行操作,所以內存地址保持不變;

相同原因打印

(f(3,))當直接給L賦值時,因為

是壹個新的list實例,內存位置自然會改變。

以上問題的根本原因是python的本質:壹切都是對象。

(賦值的過程是壹個對象的實例化)

看了妳的回答:感覺真的很繞,但是我盡力了。希望妳能理解。如果不了解,請在問題中註明!