溫馨提示×

溫馨提示×

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

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

python函數(shù)傳遞參數(shù)的方法

發(fā)布時(shí)間:2020-07-01 11:23:45 來源:億速云 閱讀:179 作者:清晨 欄目:編程語言

小編給大家分享一下python函數(shù)傳遞參數(shù)的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

Python中,函數(shù)參數(shù)由實(shí)參傳遞給形參的過程,是由參數(shù)傳遞機(jī)制來控制的。根據(jù)實(shí)際參數(shù)的類型不同,函數(shù)參數(shù)的傳遞方式分為值傳遞和引用傳遞(又稱為地址傳遞)。

Python函數(shù)參數(shù)的值傳遞機(jī)制

所謂值傳遞,實(shí)際上就是將實(shí)際參數(shù)值的副本(復(fù)制品)傳入函數(shù),而參數(shù)本身不會(huì)受到任何影響。

下面程序演示了函數(shù)參數(shù)進(jìn)行值傳遞的效果:

def swap(a , b) :
    # 下面代碼實(shí)現(xiàn)a、b變量的值交換
    a, b = b, a
    print("swap函數(shù)里,a的值是", \
        a, ";b的值是", b)
a = 6
b = 9
swap(a , b)
print("交換結(jié)束后,變量a的值是", \
    a , ";變量b的值是", b)

運(yùn)行上面程序,將看到如下運(yùn)行結(jié)果:

swap函數(shù)里,a的值是 9 ;b的值是 6
交換結(jié)束后,變量a的值是 6 ;變量b的值是 9

從上面的運(yùn)行結(jié)果來看,在 swap() 函數(shù)里,a 和 b 的值分別是 9、6,交換結(jié)束后,變量 a 和 b 的值依然是 6、9。從這個(gè)運(yùn)行結(jié)果可以看出,程序中實(shí)際定義的變量 a 和 b,并不是 swap() 函數(shù)里的 a 和 b 。

Python函數(shù)參數(shù)的引用傳遞

如果實(shí)際參數(shù)的數(shù)據(jù)類型是可變對象(列表、字典),則函數(shù)參數(shù)的傳遞方式將采用引用傳遞方式。需要注意的是,引用傳遞方式的底層實(shí)現(xiàn),采用的依然還是值傳遞的方式。

下面程序示范了引用傳遞參數(shù)的效果:

def swap(dw):
    # 下面代碼實(shí)現(xiàn)dw的a、b兩個(gè)元素的值交換
    dw['a'], dw['b'] = dw['b'], dw['a']
    print("swap函數(shù)里,a元素的值是",\
        dw['a'], ";b元素的值是", dw['b'])
dw = {'a': 6, 'b': 9}
swap(dw)
print("交換結(jié)束后,a元素的值是",\
    dw['a'], ";b元素的值是", dw['b'])

運(yùn)行上面程序,將看到如下運(yùn)行結(jié)果:

swap函數(shù)里,a元素的值是 9 ;b元素的值是 6
交換結(jié)束后,a元素的值是 9 ;b元素的值是 6

從上面的運(yùn)行結(jié)果來看,在 swap() 函數(shù)里,dw 字典的 a、b 兩個(gè)元素的值被交換成功。不僅如此,當(dāng) swap() 函數(shù)執(zhí)行結(jié)束后,主程序中 dw 字典的 a、b 兩個(gè)元素的值也被交換了。

這很容易造成一種錯(cuò)覺,即在調(diào)用 swap() 函數(shù)時(shí),傳入 swap() 函數(shù)的就是 dw 字典本身,而不是它的復(fù)制品。

看完了這篇文章,相信你對python函數(shù)傳遞參數(shù)的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

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

AI