- 普通引數,即在呼叫函式時必須按照準確的順序來進行引數傳遞,
- 默認引數,即引數含有默認值,在呼叫函式時可以進行引數傳遞,若沒有進行引數傳遞則使用默認值,要注意,默認引數必須在普通引數的右側(否則解釋器無法決議),
- 元組引數,即 *args,引數格式化存盤在一個元組中,長度沒有限制,必須位于普通引數和默認引數之后,
- 字典引數,即 **kwargs,引數格式化存盤在一個字典中,必須位于引數串列的最后面,
ll = [2,5,6]
arg = {'name': 'js', 'gender': 'man'}
def func(*args, **kwargs):
print('args: ')
print(args)
print('kwargs :')
print(kwargs.items())
func(*ll, **arg)
args:
(2, 5, 6)
kwargs :
dict_items([('name', 'js'), ('gender', 'man')])
- 同時擁有*args和**kwarg形參的函式
def func(*args, **kwargs):
print('args: ')
print(args)
print('kwargs :')
print(kwargs.items())
func(2,4,5,name='js',gender='man')
# 沒有指定位置的引數被*arg接收,指定位置的引數被**kwarg接收
args:
(2, 4, 5)
kwargs :
dict_items([('name', 'js'), ('gender', 'man')])
總結 :和在串列元素匹配,函式使用字典或串列引數(整理引數)和傳入字典或串列引數(壓縮引數)都有著重要的作用,在裝飾器也經常用到,用來接識訓者傳入任意型別,任意數量的引數,使python語言更動態但是會降低代碼可讀性,謹慎使用!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/198675.html
標籤:Python
上一篇:shell編程
