溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python函數值傳遞、引用傳遞、形式參數和實際參數的區(qū)別是什么

發(fā)布時間:2022-05-20 13:45:11 來源:億速云 閱讀:162 作者:iii 欄目:開發(fā)技術

本篇內容主要講解“Python函數值傳遞、引用傳遞、形式參數和實際參數的區(qū)別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python函數值傳遞、引用傳遞、形式參數和實際參數的區(qū)別是什么”吧!

通常情況下,定義函數時都會選擇有參數的函數形式,函數參數的作用是傳遞數據給函數,令其對接收的數據做具體的操作處理。

在使用函數時,經常會用到形式參數(簡稱“形參”)和實際參數(簡稱“實參”),二者都叫參數,之間的區(qū)別是:

  • 形式參數:在定義函數時,函數名后面括號中的參數就是形式參數,例如:

#定義函數時,這里的函數參數 obj 就是形式參數
def demo(obj)
print(obj)
  • 實際參數:在調用函數時,函數名后面括號中的參數稱為實際參數,也就是函數的調用者給函數的參數。例如:

a = "python"
#調用已經定義好的 demo 函數,此時傳入的函數參數 a 就是實際參數
demo(a)

實參和形參的區(qū)別,就如同劇本選主角,劇本中的角色相當于形參,而演角色的演員就相當于實參。

明白了什么是形參和實參后,再來想一個問題,那就是實參是如何傳遞給形參的呢?

Python 中,根據實際參數的類型不同,函數參數的傳遞方式可分為 2 種,分別為值傳遞和引用(地址)傳遞:

  • 值傳遞:適用于實參類型為不可變類型(字符串、數字、元組);

  • 引用(地址)傳遞:適用于實參類型為可變類型(列表,字典);

值傳遞和引用傳遞的區(qū)別是,函數參數進行值傳遞后,若形參的值發(fā)生改變,不會影響實參的值;而函數參數繼續(xù)引用傳遞后,改變形參的值,實參的值也會一同改變。

例如,定義一個名為 demo 的函數,分別為傳入一個字符串類型的變量(代表值傳遞)和列表類型的變量(代表引用傳遞):

def demo(obj) :
obj += obj
print("形參值為:",obj)
print("-------值傳遞-----")
a = "python"
print("a的值為:",a)
demo(a)
print("實參值為:",a)
print("-----引用傳遞-----")
a = [1,2,3]
print("a的值為:",a)
demo(a)
print("實參值為:",a)

運行結果為:

-------值傳遞-----
a的值為: python
形參值為: pythonpython
實參值為: python
-----引用傳遞-----
a的值為: [1, 2, 3]
形參值為: [1, 2, 3, 1, 2, 3]
實參值為: [1, 2, 3, 1, 2, 3]

分析運行結果不難看出,在執(zhí)行值傳遞時,改變形式參數的值,實際參數并不會發(fā)生改變;而在進行引用傳遞時,改變形式參數的值,實際參數也會發(fā)生同樣的改變。

到此,相信大家對“Python函數值傳遞、引用傳遞、形式參數和實際參數的區(qū)別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI