例子1:
def f(x):
x[0]=10
a=[1,2]
f(a)
a[0]
輸出
記憶體空間
命名空間
pos1:list[1,2]
a:pos1
x:pos1
對列表a應用這個函式,python會先讓x指向a所在的記憶體。由於x和a共享同乙個物件,修改x[0]會讓a的值相應改變。
例子2:
def mod(x):
x=[4,5,6]
a = [1,2,3]
a
輸出:[1,2,3]
記憶體空間
命名空間
pos2:list[1,2,3]
a:pos2
pos3:list[4,5,6]
x:pos3
此例子中,我們在函式中給引數x賦了乙個新值,如另乙個列表, 根據賦值機制,雖然x指向了乙個新的記憶體位置,但原來的變數不會改變。
來自《自學python》第三章 python高階
python 引數傳遞 Python 引數傳遞
python中的變數 乙個變數是區域性還是全域性,在編譯函式的時候就已經決定,因此讀變數值的時候也不會逐層向外查詢。變數是全域性還是局域,根據如下3條 1.如果函式內部有global語句,那麼它宣告的變數是全域性的。2.如果函式內部有對變數的賦值語句,那麼它是局域的。3.除此之外都是全域性的。注意1...
python 引數傳遞 python引數傳遞
python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...
Python函式(1)函式引數傳遞
1 形式引數 2 實際引數 1 形式引數 函式定義過程中所傳遞的引數稱為形式引數,函式名後面括號中的引數為 形式引數 注意形式引數本身沒有實際含義.只有當實際引數的值傳遞給形式引數時,形參會被當成是乙個臨時容器,儲存該資料,保證函式執行過程中資料的使用 2 實際引數 函式呼叫過程中傳遞的引數稱為實際...