python什么是关键字参数_Python 函数 (关键字参数)
關(guān)鍵字參數(shù)
可變參數(shù)允許你傳入0個(gè)或者任意個(gè)參數(shù),這些可變參數(shù)在函數(shù)調(diào)用時(shí)會自動組裝成一個(gè)tuple,而關(guān)鍵字參數(shù)允許你傳入0個(gè)或者任意個(gè)含參數(shù)名的參數(shù),這些參數(shù)在函數(shù)內(nèi)部自動組裝成為一個(gè)dict
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
函數(shù)person除了必選參數(shù)name和age外,還接受關(guān)鍵字參數(shù)kw。在調(diào)用的時(shí)候。可以只傳入必選參數(shù):
print person('Michael', 30) #=>('name:', 'Michael', 'age:', 30, 'other:', {})
也可以傳入任意個(gè)數(shù)的關(guān)鍵字參數(shù):
print person('Bob', 35, city='Beijing') #=>('name:', 'Bob', 'age:', 35, 'other:', {'city': 'Beijing'})
print person('Adam', 45, gender='M', job='Engineer') #=>('name:', 'Adam', 'age:', 45, 'other:', {'gender': 'M', 'job': 'Engineer'})
關(guān)鍵字參數(shù)它可以擴(kuò)展函數(shù)的功能。比如,在person函數(shù)里,我們保證能接收到name和age這兩個(gè)參數(shù),但是,如果調(diào)用者愿意提供更多的參數(shù),我們也能收到。試想你正在做一個(gè)用戶注冊的功能,除了用戶名和年齡是必填項(xiàng)外,其他都是可選項(xiàng),利用關(guān)鍵字參數(shù)來定義這個(gè)函數(shù)就能滿足注冊的需求。
#和可變參數(shù)類似,也可以先組裝出一個(gè)dict,然后,把該dict轉(zhuǎn)換為關(guān)鍵字參數(shù)傳進(jìn)去:
extra = {'city': 'Beijing', 'job': 'Engineer'}
print person('Jack', 24, city=extra['city'], job=extra['job']) #=>('name:', 'Jack', 'age:', 24, 'other:', {'city': 'Beijing', 'job': 'Engineer'})
也可以簡化成這樣
print person('Jack', 24, **extra)
**extra表示把extra這個(gè)dict的所有key-value用關(guān)鍵字參數(shù)傳入到函數(shù)的**kw參數(shù),kw將獲得一個(gè)dict,注意kw獲得的dict是extra的一份拷貝,對kw的改動不會影響到函數(shù)外的extra。
參考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000
總結(jié)
以上是生活随笔為你收集整理的python什么是关键字参数_Python 函数 (关键字参数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.6与3.7有什么区别_P
- 下一篇: python入门题目及答案_Python