千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python值傳遞和引用傳遞的作用是什么?

python值傳遞和引用傳遞的作用是什么?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-05 18:32:37 1699180357

作為一種編程語言,Python也有很多變量和類型,正是因?yàn)檫@些特點(diǎn),它才比較靈活。后面我們在寫代碼的時候,會遇到各種傳參的情況,其中就涉及到值的傳遞和引用傳遞,兩者雖然差不多,但本質(zhì)還是有很大區(qū)別的。本文介紹了值傳遞和引用傳遞的區(qū)別,請參閱以下內(nèi)容:

引用是什么?

例如,我們在變量count中存儲一個值。對于引用類型,變量存儲實(shí)例對象的地址,即指向?qū)嵗龑ο?,這種類型的變量通常稱為引用。

值傳遞:形參是實(shí)參的拷貝,改變形參的值不影響外部實(shí)參的值。從被調(diào)用函數(shù)的角度來看,價值傳遞是單向的。參數(shù)的值只能傳入不能傳出。當(dāng)需要在函數(shù)內(nèi)部修改參數(shù)并且預(yù)計(jì)更改不會影響調(diào)用者時,使用值傳遞。

指針傳遞:形參是指向?qū)崊⒌刂返闹羔槨V羔槍π螀⑦M(jìn)行操作時,相當(dāng)于對實(shí)參本身進(jìn)行操作。

引用傳遞:形參相當(dāng)于實(shí)參的“別名”。對形參的運(yùn)算實(shí)際上就是對實(shí)參的運(yùn)算。在按引用傳遞的過程中,被調(diào)用函數(shù)的形參也作為局部變量在棧中開辟內(nèi)存??臻g,但是此時存儲的是調(diào)用函數(shù)放入的實(shí)參變量的地址。

任何對被調(diào)用函數(shù)的形參的操作都作為間接尋址處理,即通過棧中存儲的地址訪問調(diào)用函數(shù)中的實(shí)參變量。因此,被調(diào)用函數(shù)對形式參數(shù)執(zhí)行的任何操作都會影響調(diào)用函數(shù)中的實(shí)際參數(shù)變量。

指針傳遞和引用傳遞的應(yīng)用場景:

修改函數(shù)內(nèi)部的參數(shù),希望修改對調(diào)用者有影響。對比指針/引用傳遞可以將形參的變化“傳遞”到實(shí)參(其實(shí)是直接在實(shí)參的內(nèi)存中修改,不像值傳遞,是將實(shí)參的值復(fù)制到另一個內(nèi)存地址來修改)

另一種用法是:當(dāng)一個函數(shù)實(shí)際需要返回多個值,但只能顯式返回一個值時,可以將需要返回的變量作為指針/引用傳遞給函數(shù),以便函數(shù)修改后返回,調(diào)用者可以獲得修改后的變量,相當(dāng)于隱式返回值傳遞。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python在編程語言中的優(yōu)勢

毫不夸張地說,大數(shù)據(jù)已經(jīng)成為任何商業(yè)交流中不可或缺的一部分。桌面和移動搜索向全世界的營銷人員和公司以空前的規(guī)模提供著數(shù)據(jù),并且隨著物聯(lián)...詳情>>

2023-11-05 21:29:02
pythonpandas是干什么用的?

Python中pandas是什么?Pandas是基于numpy的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas納入了大量的庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供...詳情>>

2023-11-05 20:45:49
VB.NET和Python有什么區(qū)別?

我想大家都知道VB.NET和Python都是編程語言,都是面向?qū)ο蟮木幊陶Z言,那么VB.NET和Python有什么區(qū)別呢?請看下文。其實(shí)Python不用過多介紹,大...詳情>>

2023-11-05 20:24:13
Python自動化辦公有哪些值得使用的庫?

眾所周知,Python的使用場景非常廣泛,無論是生活還是工作,都可以使用Python來幫助我們。Python主要可以用在爬蟲、后端開發(fā)、人工智能、機(jī)器學(xué)...詳情>>

2023-11-05 20:06:13
Python爬蟲框架有哪些?

Python被稱為爬蟲首選語言的主要原因是Python擁有眾多的爬蟲框架,不僅功能齊全,優(yōu)勢眾多,還能幫助程序員用更少的代碼實(shí)現(xiàn)更多的功能,讓工作...詳情>>

2023-11-05 19:55:25