值傳遞
在python中,萬物皆物件,那麼在傳遞乙個引數給函式進行使用的時候,如果這個引數的值是不可變物件,那麼python就會將引數的值傳進去進行操作,而不是傳遞其位址,在操作完成後會形成乙個新的物件,位址也會和之前傳遞的引數位址不同。
引用傳遞
但如果傳遞的引數是乙個可變物件,那麼實際就會將對這個可變物件的引用也就是位址傳遞進去,在對這個可變物件進行新增、修改或者刪除的操作後,還是那個物件,位址是不會改變的。
ef add_ele(x, y)
: x = x +
'abc'
'abc'
)return x, y
a ='abcd'
b =[
'a',
'b',
'c',
'd']
print
('a: '
, a,
id(a)
)print
('b: '
, b,
id(b)
)a, b = add_ele(a, b)
print
('a: '
, a,
id(a)
)print
('b: '
, b,
id(b)
)
執行這段**輸出如下
a: abcd 2143526898032
b: ['a', 'b', 'c', 'd'] 2143525622280
a: abcdabc 2143527228144
b: ['a', 'b', 'c', 'd', 'abc'] 2143525622280
顯而易見,變數a作為不可變物件,在作為引數傳遞給函式add_ele時採用了值傳遞,而變數b作為可變物件,採取了引用傳遞的方式傳遞給函式。 Python中值傳遞和引用傳遞區別
python中對乙個函式可以傳遞引數,但是如何分辨是值傳遞還是引用傳遞,不是程式設計師手動控制的,而是python根據你傳入的資料物件,自動識別的。如果你傳入的引數物件是可變物件 列表,字典,這個時候就是引用傳遞,如果引數在函式體內被修改,那麼源物件也會被修改。如果你傳入的引數物件是不可變的物件 數...
Python中值傳遞和引用傳遞區別
python中對乙個函式可以傳遞引數,但是如何分辨是值傳遞還是引用傳遞,不是程式設計師手動控制的,而是python根據你傳入的資料物件,自動識別的。如果你傳入的引數物件是可變物件 列表,字典,這個時候就是引用傳遞,如果引數在函式體內被修改,那麼源物件也會被修改。如果你傳入的引數物件是不可變的物件 數...
c 中值傳遞和引用傳遞
物件在方法間傳值,傳遞的是物件的值,或者這個物件的引用的副本 首先建立乙個物件 public class orderinfo 建立乙個方法去改變這個物件 private void change orderinfo order 然後通過方法的呼叫檢視變化 private void btnchange ...