1. 程式人生 > 實用技巧 >函式的動態引數

函式的動態引數

def func(a, c, d, e, f, b=1):
    print(a, b)
func(1)
def func(a, b, *args):  # *args 是萬能(可接收任意多個)的位置引數 *在函式定義的時候叫做聚合
    print(a, b, args)
func(1, 2, 3, 4, 5, 6)

def func(a, b, *args):  # *args 是萬能(可接收任意多個)的位置引數 *在函式定義的時候叫做聚合
    print(a, b, *args)  # *打散
func(1, 2, 3, 4, 5, 6)

位置引數 > 動態位置引數 > 預設引數

def func(*args, a=1, b=2):
    print(a, b, args)  # 元組(接收的位置引數)
func(12, 15, 1222, 343, 656)

def func(a, b, **kwargs):
    print(a, b, kwargs)  # 字典(接收的關鍵字的引數)
func(1, 2, c=1, d=2)

def func(a, b, *args, c=5, d=6):
    print(a, b, *args, c, d)
func(1, 2, 3, 4)

def func(a, b, *args, c=5, d=6, **kwargs):
    print(a, b, *args, c, d, kwargs)  # *kwargs 獲取到的是字典的鍵
func(1, 2, 3, 4, c=8, d=10, e="yulin", f="50")

def func(*args, **kwargs):   # 萬能傳參
    print(args, kwargs)
func(1, 2, 3, 4, 5, 6, 7, 8, a=1, b=2, c=3)

引數的優先順序:位置引數 > 動態位置引數 > 預設引數(關鍵字引數) > 動態關鍵字引數
1、萬能傳參:動態位置引數,動態關鍵字引數(最常用)
2、位置引數,動態位置引數
3、動態位置引數,關鍵字引數,動態關鍵字引數