###### tags: `Coding` # Python (不定參數) ## 不定參數 (```*args```與```**kwargs```) <a href = 'https://note.pcwu.net/2017/03/03/python-arbitrary/'>reference 1 </a> <a href = 'https://medium.com/@jemmy1234/python-%E7%9A%84%E5%8F%AF%E8%AE%8A%E5%8F%83%E6%95%B8-e8174864b25e'>reference 2 </a><br> &emsp;在傳入參數時,可以星號作為標記,若加單個星號,則代表以tuple方式傳入,兩個星號,則代表以dict方式傳入,如下:<br> * ```*args``` -> tuple方式傳入 * ```**kwargs``` -> dict方式傳入 以tuple方式傳入範例如下:<br> ``` def test(*args): for m in args: print('args > ' + str(m)) aa = ('uuu', 3, 7) test(*aa) #輸出結果: >>> args > uuu >>> args > 3 >>> args > 7 ``` 以dict方式傳入範例如下:<br> ``` def test(**kargs): for n in kargs: print('kargs:' + str(n) + ' > ' + str(kargs[n])) bb = {'c': 6, 'oo': 'pp', '22': 'vv'} test(**bb) #輸出結果: >>> kargs:oo > pp >>> kargs:22 > vv >>> kargs:c > 6 ``` 然而函式在讀取變數時,是有順序性的,其順序如下:<br> >固定參數 -> ```*args``` -> ```*kwargs``` ---