close

一般在python的函式中,

通常都會預設參數來做一些應用,

預設參數

範例-1:

def test(num1, num2, num3):
    print('num1: {}, num2: {}, num3: {}'.format(num1, num2, num3))
        
test(1, 2, 3)

輸出結果:

num1: 1, num2: 2, num3: 3

 

範例-2:

def test(num1, num2, num3):
    print('num1: {}, num2: {}, num3: {}'.format(num1, num2, num3))
    
num = [1, 2, 3]    
test(*num)

輸出結果:

num1: 1, num2: 2, num3: 3

 

*args用法

預設參數的範例-2的輸入*num模式一樣,

將值收集成一個資料組(Tuple),

範例-1

def test(*args):
    print('num: {}'.format(args))
    for i in args:
        print('k_num: {}'.format(i))
  
test(2, 5, 1)

輸出結果:

num: (2, 5, 1)
k_num: 2
k_num: 5
k_num: 1

 

範例-2

def test(*args):
    print('num: {}'.format(args))
    for i in args:
        print('k_num: {}'.format(i))

num = [2, 5, 1]  
test(*num)

輸出結果:

num: (2, 5, 1)
k_num: 2
k_num: 5
k_num: 1

 

**kwargs用法

除了可以帶入值外,

還可以輸入關鍵字,

用法如字典資料組(dict),

如: data= {'k':2, 'p':1}

範例-1

def test(**kwargs):
    print('num: {}'.format(kwargs))
    print('k1: {}'.format(kwargs['k1']))
    for i , j in kwargs:
        print('k_num: {}'.format(j))
  
test(k1=2, k2=5, k3=1)

輸出結果:

num: {'k1': 2, 'k2': 5, 'k3': 1}
k1: 2
k_num: 1
k_num: 2
k_num: 3

 

同時使用*args及**kwargs的用法

※注意※

*args擺放位置一定要在**kwargs才行

範例-1

def test(*args, **kwargs):
    print('num:{} , k_num: {}'.format(args, kwargs))

num = [2, 5, 1]  
test(*num, k1=1, k2=2)

輸出結果:

num:(2, 5, 1) , k_num: {'k1': 1, 'k2': 2}

arrow
arrow
    文章標籤
    python *args **kwargs
    全站熱搜
    創作者介紹
    創作者 楓綺 的頭像
    楓綺

    K_程式人

    楓綺 發表在 痞客邦 留言(0) 人氣()