python函式引數詳解

2021-08-20 03:33:33 字數 1813 閱讀 2449

如果你傳入的引數物件是可變物件:列表,字典,這個時候就是引用傳遞。

如果你傳入的引數物件是不可變的物件:數字,元組,字串,這個時候就是值傳遞。

對於值傳遞,函式內部修改的是引數的副本,不會改變原值;

對於引用傳遞,函式內部修改了是變數的指向,從而相應對變數進行了改變。

舉例如下:

當引數是不可變物件時:

>>> a = 10

>>> def change(a):

a = 20

>>> change(a)

>>> a

10

當引數是可變物件時:

>>> b = [1,2,3]

>>> def change(b):

b[0] = 0

>>> change(b)

>>> b

[0, 2, 3]

當多個實參向多個形參傳遞,通常是根據位置來判斷對應關係。

例如:5傳遞給了x,2傳遞給了y,1傳遞給了z:

>>> def yao(x, y, z):

return x - y - z

>>> yao(5, 2, 1)

2

在傳參時,指定引數名稱,可以忽略位置因素。

例如:

>>> def yao(x, y, z):

return x - y - z

>>> yao(z=1, y=2, x=5)

2

例如:下面函式在指定了預設值後,如果在呼叫時沒有傳遞相應引數,引數就會使用預設值。

>>> def yao(x=5, y=2, z=1):

return x - y - z

>>> yao()

2

通過在形參前放置乙個*號,該形參就自動建立為乙個元祖,可接收多個實參作為其元素。

舉例如下:

>>> def yao(*params):

print(params)

>>> yao(1,2,3,4,5)

(1, 2, 3, 4, 5)

>>> def yao(x,y,*z):

print(z)

>>> yao(1,2,3,4,5)

(3, 4, 5)

可以形參前加上**來接收關鍵字引數。該引數是字典形式。

例如:

>>> def yao(**params):

print(params)

>>> yao(x=1, y=2, z=3)

引數收集說的是,形參如何通過元組形式或字典形式接收多個實參。

引數分配說的是,乙個元組形式的實參如何分配給多個形參。

具體操作方式與引數收集類似,具體是在實參傳遞時適用*號或**號。

例如:將元組傳遞給多個形參:

>>> def yao(x, y):

return x + y

>>> params = (1, 2)

>>> yao(*params)

3

再例如,將字典傳遞給多個形參:

>>> def yao(x,y):

return x + y

>>> params =

>>> yao(**params)

3

python函式引數的詳解

實參 呼叫函式,在括號內傳入的實際值,值可以為常量 變數 表示式或三者的組合 形參 定義函式,在括號內宣告的變數名,用來接受外界傳來的值 注 形參隨著函式的呼叫而產生,隨著呼叫結束而銷毀 位置實參 不用明確形參名的傳參方式,一定按照位置給形參傳值 關鍵字實參 必須明確形參名字與值為形參傳值,可以不用...

python函式的引數詳解

函式定義的格式 def my func pass 函式的引數 形參,實參,關鍵字引數 必須引數 def my func with param p1,p2 print p1,p2 my func with param 1,2 關鍵字引數 是在呼叫的時候制定引數名稱,可以不按照順序傳 def my fu...

Python中函式引數使用詳解

def a a,b 1 此時b等於1就是預設引數,也就是預設引數 print a,b 在呼叫時不傳就使用預設值 預設引數只能寫在其他形參後面 b 1 就是預設引數也就是有傳引數就用傳的,沒有就用預設值 注意 其他引數只能寫在預設引數前面 def a a,b 1,c 44 print a,b,c a ...