python的參數傳遞是值傳遞還是引用傳遞??

來源:互聯網
上載者:User

標籤:影響   不可變   允許   綜合   問題   可變對象   是什麼   程式   局部變數   

函數參數傳遞機制,傳值和引用的是什麼意思?

函數參數傳遞機制問題在本質上是調用函數(過程)和被調用函數(過程)在調用發生時進行通訊的方法問題。基本的參數傳遞機制有兩種:值傳遞和引用傳遞。

值傳遞(passl-by-value)過程中,被調函數的形式參數作為被調函數的局部變數處理,即在堆棧中開闢了記憶體空間來存放由主調函數放進來的實參的值,從而想成為了實參的一個副本。值傳遞的特點是被調函數對形勢參數的任何操作都是作為局部變數進行,不會影響主調函數的實參變數的值。

引用傳遞(pass-by-reference)過程中,被調函數的形式參數雖然也作為局部變數在堆棧中開闢了記憶體空間,但這時存放的是由主調函數放進來的實參變數的地址。被調函數對形參的任何操作都被處理成間接定址,即通過堆棧中存放的地址訪問主調函數中的實參變數。正因為如此,被調函數對形參做任何的操作都影響了主調函數中的實參變數。

在python中,可以有多個引用同時指向一個記憶體。

python不允許程式員選擇採用傳值還是傳引用。python參數傳遞採用的肯定是“傳對象引用”的方式。這種方式相當於傳值和傳引用的一種綜合。如果函數收到的是一個可變對象(字典、列表)的引用,就能修改對象的原始值--相當於‘傳引用’來傳遞對象。如果函數收到的是一個不可變對象(數字、字元或元組)的引用,就不能直接修改原始對象--相當於通過‘值傳遞’來傳遞對象。

python的參數傳遞是值傳遞還是引用傳遞??

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.