python函式之值傳遞和引用傳遞

2021-10-03 04:51:38 字數 494 閱讀 7080

在python中值傳遞和引用傳遞的判斷是根據你傳入資料型別而判斷的

如果你傳入的引數物件是可變物件:列表,字典,這個時候就是引用傳遞,如果引數在函式體內被修改,那麼源物件也會被修改。

如果你傳入的引數物件是不可變的物件:數字,元組,字串,這個時候就是值傳遞。那麼源物件是不會改變的。

其實他們最大的區別就是:

在值傳遞中,不改變引數的值,而在引用傳遞中,引數的值是被改變的。

案例1:

def

test

(a, b)

: a =

10 b[0]

=20a =

100b =

[100

,200

,300

]test(a, b)

print

(a, b)

這裡我們可以看出a作為乙個數字,他的值沒有發生變化,這就是值傳遞,而b的值明顯發生的變化,顯然是引用傳遞

python值傳遞和引用傳遞

關於值傳遞和引用傳遞,綜合目前各種的說法,可以得出這樣的結論 可變物件為引用傳遞,不可變物件為值傳遞。但是python中一切事物均視為物件,個人覺得值傳遞和物件傳遞只不過是物件引用的兩種表現。如果是可變物件的引用 比如字典 列表 就能修改物件的原始值,相當於通過傳引用來傳遞物件,不可變物件 如數字 ...

python的引用傳遞和值傳遞

函式的引用傳遞 對於函式輸入的引數物件,函式在執行過程中對物件本身進行操作 在執行結束後引數物件有可能發生改變函式的值傳遞 對於函式輸入的引數物件,函式執行中首先生成物件的乙個副本,並在執行過程中對副本進行操作。執行結束後物件不發生改變。python中不可選擇函式是引用傳遞 pass by refe...

Python函式引數 按值傳遞和按引用傳遞

首先簡單說明一下,python中按值傳遞與按引用傳遞的區別 按值引數傳遞是指乙個變數的值來取代乙個函式引數的做法。如果這個值在函式 組中改變,對於呼叫這個函式的 來說,其中相應的變數值並不會受到任何影響,可以把這個引數認為是原變數值的乙個副本。按引用引數傳遞是指對於呼叫這個函式的 會維護這個 中變數...