python3 不定長引數 的區別

2021-08-21 12:00:41 字數 1498 閱讀 3881

def functionname([formal_args,] *var_args_tuple ):

"函式_文件字串"

function_suite

return [expression]

加了星號 * 的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數。

#!/usr/bin/python3 # 可寫函式說明 def printinfo( arg1, *vartuple ): "列印任何傳入的引數" print ("輸出: ") print (arg1) print (vartuple) # 呼叫printinfo 函式 printinfo( 70, 60, 50 )

以上例項輸出結果:

輸出: 

70(60, 50)

如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數。如下例項:

#!/usr/bin/python3 # 可寫函式說明 def printinfo( arg1, *vartuple ): "列印任何傳入的引數" print ("輸出: ") print (arg1) for var in vartuple: print (var) return # 呼叫printinfo 函式 printinfo( 10 ) printinfo( 70, 60, 50 )

以上例項輸出結果:

輸出:

10輸出:

7060

50

還有一種就是引數帶兩個星號 **基本語法如下:

def functionname([formal_args,] **var_args_dict ):

"函式_文件字串"

function_suite

return [expression]

加了兩個星號 ** 的引數會以字典的形式匯入。

#!/usr/bin/python3 # 可寫函式說明 def printinfo( arg1, **vardict ): "列印任何傳入的引數" print ("輸出: ") print (arg1) print (vardict) # 呼叫printinfo 函式 printinfo(1, a=2,b=3)

以上例項輸出結果:

輸出: 

1

宣告函式時,引數中星號 * 可以單獨出現,例如:

def f(a,b,*,c):

return a+b+c

如果單獨出現星號 * 後的引數必須用關鍵字傳入。

>>> def f(a,b,*,c):

... return a+b+c

...

>>> f(1,2,3) # 報錯

traceback (most recent call last):

file "", line 1, in typeerror: f() takes 2 positional arguments but 3 were given

>>> f(1,2,c=3) # 正常

6>>>

python3不定長引數

python中用以下方式解決引數個數的不確定性。1 函式中用 arg方式接收資料,以元組 tuple 的形式傳參。def func x,args print x args format x,args res x for i in args res res i return res print res...

python3 函式 不定長引數 不定參

第一種不定長引數 args args 稱為不定長引數,只能放在形參的最後位置,返回的是乙個元組 def num a,b,args print a print b print args num 11,22 返回結果 1122 33,55會放在元組args中 num 11,22,33,55 返回結果 1...

Python不定長引數

記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...