更新時(shí)間:2023年03月27日14時(shí)19分 來源:傳智教育 瀏覽次數(shù):
在Python中,參數(shù)傳遞是按引用調(diào)用(也稱為按對(duì)象傳遞),而不是按值調(diào)用。這意味著函數(shù)接收的是傳遞對(duì)象的引用,而不是對(duì)象的值本身。在函數(shù)內(nèi)部對(duì)傳遞的對(duì)象進(jìn)行的任何更改都將在調(diào)用者中反映出來。
下面是一個(gè)例子來說明這個(gè)問題:
def change_list(lst): lst.append(4) my_list = [1, 2, 3] change_list(my_list) print(my_list) # 輸出 [1, 2, 3, 4]
在這個(gè)例子中,我們定義了一個(gè)函數(shù)change_list,它接收一個(gè)列表參數(shù)lst并將值4添加到該列表中。然后我們創(chuàng)建一個(gè)名為my_list的列表,調(diào)用change_list函數(shù)并將my_list作為參數(shù)傳遞。最后,我們?cè)谥鞒绦蛑写蛴y_list的值,發(fā)現(xiàn)它已經(jīng)被修改了,添加了值4。
這是因?yàn)樵赑ython中,my_list的值實(shí)際上是一個(gè)指向列表對(duì)象的引用,當(dāng)它被傳遞給change_list函數(shù)時(shí),實(shí)際上傳遞的是該引用。在函數(shù)內(nèi)部,我們可以通過這個(gè)引用來訪問和修改列表對(duì)象,而這些修改會(huì)反映在調(diào)用者中。
需要注意的是,雖然Python中的參數(shù)傳遞是按引用調(diào)用,但是對(duì)于不可變類型的參數(shù)(例如數(shù)字、字符串和元組),修改操作會(huì)創(chuàng)建一個(gè)新的對(duì)象,而不是在原始對(duì)象上進(jìn)行修改。因此,即使傳遞的是不可變類型的參數(shù),也不能說Python中是按值調(diào)用。
北京校區(qū)