python含有 , , 引數的函式

2021-10-20 19:41:33 字數 1674 閱讀 9574

例如

def

foo(param1,

*param2)

:def

bar(param1,

**param2)

:

這兩種用法其實都是用來將任意個數的引數匯入到 python 函式中。

看**

# 帶*的函式

defmyfun2

(a,*b)

:print

(a, b)

# 帶**的函式

defmyfun3

(a,**b)

:print

(a, b)

# 結合使用*和**

defmerge

(a,b,

*c,**d)

:print

(a,b,c,d)

myfun2(1,

2,3,

4)myfun3(

1, age=

2, hieght=3)

# 注意這裡的key不需要帶引號,而其key不能是數字

merge(9,

8,5,

5,5,name=

"bob"

,address=

"china"

)輸出:1(

2,3,

4)19

8(5,

5,5)

所以得出結論:*args是以元組的形式傳入。 **args是以字典的形式傳入

例如:

/和*佔乙個引數位置

**解釋:

def

f1(a,b,/)

:print

(a,b)

deff2

(a,*

,b,c)

:print

(a,b,c)

f1(19,9

)# (a=19,b=9)不行,會報錯

f2(1

,b=1

,c=1

)# 只能用這種格式

執行結果:199111

結論:

首先要區分「位置引數」和「關鍵字引數」,這兩種引數的區別

位置引數:穿的引數必須按函式裡面寫的位置先後,乙個乙個傳,例如:fun(1)

關鍵字引數:可以不按順序,但是實參前面必須帶有形參,例如:fun(age=1)

總結

知道「位置引數」和「關鍵字引數」的區別後

如果你希望呼叫者使用函式時一定 不能 使用關鍵字引數傳參,那麼只需要把這些引數放在/前即可;

如果你希望呼叫者使用函式時一定要使用某些引數,且必須為關鍵字引數傳參,那麼只需要把這些引數放在*後面即可。

不按規則穿參就會報錯

這個就比較簡單了

# 預設值函式

defmoren

(a=0

,b=0):

print

(a,b)

moren(

)輸出結果:0,

0

如有不對,歡迎指正

參考部落格:

python引數函式 Python函式引數總結

coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...

python 引數 Python函式 引數

python中將函式作為引數,區分將引數直接寫成函式名和函式名 的區別。def fun1 fun print print print fun 執行fun1 fun4 時,fun為函式fun3的返回值x print type fun type fun type fun fun 執行fun1 fun4 ...

python 函式的引數

位置引數 def power x,n s 1 while n 0 n n 1 s s xreturn s 以上的函式旨在於實現計算x的n次方 預設引數 def power x,n 2 s 1 while n 0 n n 1 s s x return s以上函式中,預設n 2,這樣情況下,不需要每次輸...