一般在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): |
輸出結果:
num: (2, 5, 1)
k_num: 2
k_num: 5
k_num: 1
範例-2
def test(*args): num = [2, 5, 1] |
輸出結果:
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): num = [2, 5, 1] |
輸出結果:
num:(2, 5, 1) , k_num: {'k1': 1, 'k2': 2}