Python函式中定義引數的四種方式

2021-10-03 08:59:05 字數 1370 閱讀 4616

python中函式引數的定義主要有四種方式:

f(arg1,arg2,…)

這是最常見的定義方式,乙個函式可以定義任意個引數,每個引數間用逗號分割,用這種方式定義的函式在呼叫的的時候也必須在函式名後的小括號裡提供個數相等

的值(實際引數),而且順序必須相同,也就是說在這種呼叫方式中,形參和實參的個數必須一致,而且必須一一對應,也就是說第乙個形參對應這第乙個實參。例如:

def a(x,y):print x,y
呼叫該函式,a(1,2)則x取1,y取2,形參與實參相對應,如果a(1)或者a(1,2,3)則會報錯。

f(arg1,arg2=value2,…)

這種方式就是第一種的改進版,提供了預設值,例如:

def a(x,y=3):print x,y
呼叫該函式,a(1,2)同樣還是x取1,y取2,但是如果a(1),則不會報錯了,這個時候x還是1,y則為預設的3。上面這倆種方式,還可以更換引數位置,比如a(y=4,x=3)用這種形式也是可以的。

f(*arg1)

上面兩種方式是有多少個形參,就傳進去多少個實參,但有時候會不確定有多少個引數,則此時第三種方式就比較有用,它以乙個*加上形參名的方式來表示這個函

數的實參個數不定,可能為0個也可能為n個。注意一點是,不管有多少個,在函式內部都被存放在以形參名為識別符號的元組中。

def a(*x):print x
>>

> a(1,2,3)

(1, 2, 3)

>>

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

traceback (most recent call last):

file "", line 1, in

typeerror: a(

) got an unexpected keyword argument 'x'

f(**arg1)

形參名前加兩個*表示,引數在函式內部將被存放在以形式名為識別符號的dictionary中,這時呼叫函式的方法則需要採用arg1=value1,arg2=value2這樣的形式。

def a(**x):print x
>>

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

#存放在字典中

>>

> a(1,2,3)

#這種呼叫則報錯

traceback (most recent call last):

file "", line 1, in

typeerror: a(

) takes exactly 0 arguments (3 given)

Python函式中定義引數的四種方式

python中函式引數的定義主要有四種方式 1.f arg1,arg2,這是最常見的定義方式,乙個函式可以定義任意個引數,每個引數間用逗號分割,用這種方式定義的函式在呼叫的的時候也必須在函式名後的小括號裡提供個數相等 的值 實際引數 而且順序必須相同,也就是說在這種呼叫方式中,形參和實參的個數必須一...

Python中的函式定義及引數

1 函式必須先宣告在使用,自定義函式採用關鍵字def,返回語句return,同時可以支援pass語句佔位,標明函式為空函式 函式 自定義求絕對值函式 def myabs x ifnot isinstance x int,float raise typeerror illigel argument.i...

Python中函式的引數定義和可變引數

剛學用python的時候,特別是看一些庫的原始碼時,經常會看到func args,kwargs 這樣的函式定義,這個 和 讓人有點費解。其實只要把函式引數定義搞清楚了,就不難理解了。先說說函式定義,我們都知道,下面的 定義了乙個函式funca def funca pass 顯然,函式funca沒有引...