python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...
這么多名稱,python到底有幾種參數(shù):
2種:普通參數(shù)(即位置參數(shù),靠位置先后來(lái)指定參數(shù)),關(guān)鍵字參數(shù)(即命名參數(shù),靠名字來(lái)指定參數(shù))。
常說的可變參數(shù)也就是普參的集合,*args。
常說的關(guān)鍵字參數(shù)一般指關(guān)鍵字參數(shù)集合,**kwargs。
參數(shù)優(yōu)先級(jí):普通參數(shù)(位參)> 普參集 > 關(guān)鍵字參數(shù) > 關(guān)參集:
def add(a, *args, b=2, **kwargs):print('a:', a)#普通參數(shù)print('args:', args)#普參集print('b:', b)#關(guān)鍵字參數(shù),在定義函數(shù)時(shí)使用就是默認(rèn)參數(shù)print('kwargs:', kwargs)#關(guān)參集
add(1, 2, 3, b=4, c=5, d=6)
輸出>>a: 1args: (2, 3)
b:4kwargs: {'c': 5, 'd': 6}
具體如下:
形參:形式參數(shù):parameter;(在定義函數(shù)時(shí)指定的參數(shù)形式,區(qū)別于實(shí)參,跟位參關(guān)參等不在一個(gè)維度。如:
defadd(a,b): #這里的a,b為形參(換個(gè)維度也可以稱為位置參數(shù))return a+b
實(shí)參:實(shí)際參數(shù)(或直接稱參數(shù),以下同理):argument(簡(jiǎn):arg,復(fù):args);(在調(diào)用函數(shù)時(shí)指定的參數(shù)值,如:
c = add(1, 2) #這里的1,2為實(shí)參(換個(gè)維度也可以稱為位置參數(shù))
參考:
默認(rèn)參數(shù):形參里的關(guān)鍵字參,如
def c(a=1, b): #a為默認(rèn)參,b為位參pass
可變參數(shù):即可選參數(shù),即參數(shù)集,如*args,**kwargs, 即調(diào)用函數(shù)時(shí)可隨意填入*args,**kwargs中的0個(gè)或多個(gè),具體參考下文。
普通參數(shù):即位置參數(shù),最普通常用的參數(shù)形式, 區(qū)別于關(guān)鍵字參數(shù),顧名思義,是靠位置來(lái)明確參數(shù)指定的。即不靠名字標(biāo)識(shí)符,就一個(gè)光桿。
位置參數(shù)集:把位參打包,放入*args元組;(args只是名稱,可換成其他任意合法標(biāo)識(shí)符,如:*my_args)
def c(*my_argsss): #類型被指定為元組
print(type(my_argsss))
c(1,2)
輸出>>
c(1)
輸出>>
命名實(shí)參:關(guān)鍵字參數(shù):keyword_argument(簡(jiǎn):kwarg,復(fù):kwargs);(區(qū)別于位參,關(guān)參靠名字來(lái)指定參數(shù),在定義函數(shù)和調(diào)用函數(shù)的時(shí)候指定了名字(標(biāo)識(shí)符),如:
def add(a, b=1): #a為位參,b為默認(rèn)參(注意順序,不能把位參放到關(guān)鍵參后面)
return a+b
add(2, b=5) #調(diào)用的時(shí)候,b=5就是關(guān)鍵參,這里b為標(biāo)識(shí)符(identifier)
def c(**k):
print(type(k)) #類型被指定為字典
c(a=1, b=2) #a,b為標(biāo)識(shí)符
輸出>>
c(**{'a':1,'b':2})
輸出>>
c({'a':1,'b':2})
輸出>>TypeError: c() takes 0 positional arguments but 1 was given(類型錯(cuò)誤:c()未定義位置參數(shù),但接收到了 1 個(gè)位置參數(shù))
#{'a':1,'b':2}被當(dāng)成一個(gè)參數(shù),這個(gè)參數(shù)是字典,這個(gè)字典沒有標(biāo)識(shí)符,所以是位參;
#**{'a':1,'b':2}被解析成多個(gè)參數(shù),參數(shù)是字典里的key=value,標(biāo)識(shí)符為key,實(shí)參為value
命名實(shí)參集:關(guān)鍵字參數(shù)集:**kwargs;(kwargs只是名稱,可換成其他任意合法標(biāo)識(shí)符,如:**some_kws。具體如下:
defadd(a, b):return a +b
add(a=1, b=2)
輸出>>3add(**{'a':1,'b':2})
輸出>>3
def add(**k):
returnk['a']+k['b']
add(a=1,b=2)
輸出>>3add(**{'a':1,'b':2})
輸出>>3
總結(jié)
以上是生活随笔為你收集整理的python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux的实际操作:Linux的分区
- 下一篇: python在统计专业的应用_Pytho