python中引數的幾種形式

2021-10-08 20:04:29 字數 2396 閱讀 5143

函式呼叫時,實參預設按位置順序傳遞,需要個數和形參匹配。按位置傳遞的引數,稱為:「位置引數」。

def

f1(a,b,c)

:print

(a,b,c)

f1(2,3

,4)f1(2,

3)

執行結果

234

f1(2,

3)typeerror: f1(

) missing 1 required positional argument:

'c'

我們可以為某些引數設定預設值,這樣這些引數在傳遞時就是可選的。稱為「預設值引數」。預設值引數放到位置引數後面。

def

f1(a,b,c=

10,d=20)

:#預設值引數必須位於普通位置引數後面

print

(a,b,c,d)

f1(8,9

)f1(8,

9,19)

f1(8,9

,19,29

)

執行結果

8910

208919

208919

29

我們也可以按照形參的名稱傳遞引數,稱為「命名引數」,也稱「關鍵字引數」。

def

f1(a,b,c)

:print

(a,b,c)

f1(8,9

,19)#位置引數

f1(c=

10,a=

20,b=30)

#命名引數

執行結果

8919

2030

10

可變引數指的是「可變數量的引數」。分兩種情況:

**1.*param(乙個星號),將多個引數收集到乙個「元組」物件中。

2.param(兩個星號),將多個引數收集到乙個「字典」物件中。

def

f1(a,b,

*c):

print

(a,b,c)

f1(8,9

,19,20

)def

f2(a,b,

**c)

:print

(a,b,c)

f2(8,9

,name=

'gaoqi'

,age=18)

deff3

(a,b,

*c,**d)

:print

(a,b,c,d)

f3(8,9

,20,30

,name=

'gaoqi'

,age=

18)

執行結果

89(

19,20)

8989

(20,30

)

在帶星號的「可變引數」後面增加新的引數,必須在呼叫的時候「強制命名引數」。

deff1(

*a,b,c)

:print

(a,b,c)

#f1(2,3,4) #會報錯。由於a是可變引數,將2,3,4全部收集。造成b和c沒有賦值。

f1(2

,b=3

,c=4

)

執行結果

(2,

)34

lambda表示式可以用來宣告匿名函式。lambda函式是一種簡單的、在同一行中定義函式的方法。lambda函式實際生成了乙個函式物件。

lambda表示式只允許包含乙個表示式,不能包含複雜語句,該表示式的計算結果就是函式的返回值。

lambda表示式的基本語法如下:

lambda arg1,arg2,arg3… : 《表示式》

arg1/arg2/arg3為函式的引數。《表示式》相當於函式體。運算結果是:表示式的運算結果。

f=

lambda a,b,c:a+b+c

print

(f)print

(f(2,3

,4))

g=[lambda a:a*2,

lambda b:b*3,

lambda c:c*4]

print

(g[0](

6),g[1](

7),g[2](

8))

執行結果

lambda

> at 0x000001ec66443ea0

>912

2132

Python函式引數傳遞的幾種形式

莫聽穿林打葉聲,何妨吟嘯且徐行。竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。位置傳參 實際呼叫引數 實參 的對應關係與形式引數 形參 的對應關係是按位置來依次對應的。def fx a,b,c pass fx 1,2,3 序列傳參 在函式呼叫過程中,用 將序列拆解 或收集 後按位置進行傳遞的傳參方式,def...

express中獲取引數的幾種形式

從url位址中獲取查詢引數 通過 url 位址列中,形式傳遞的引數,可以直接通過req.query來獲取 const express require express const server express server.get index.html req,res res.send 成功 serv...

springMVC接收引數的幾種形式

springmvc接收引數的幾種形式 1.引數寫在controller的方法的形參中,適用於get,post方式提交,post方式的時候編碼方式需設定為 x www form urlencoded轉換為鍵值對形式,引數名必須完全相同才能對映到,為此,使用下面5中的方法,可以實現別名轉換。注意 以x ...