關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。請看示例:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 關鍵字參數:**kw 4 def person(name,age,**kw): 5 print('name:',name,'age:',age,'other:',kw) 6 person('Frank','37') 7 person('Frank','37',city='Shanghai') 8 person('Frank','37',gender='M',job='Engineer')
輸出:
name: Frank age: 37 other: {} name: Frank age: 37 other: {'city': 'Shanghai'} name: Frank age: 37 other: {'gender': 'M', 'job': 'Engineer'}
關鍵字參數有什么用?它可以擴展函數的功能。比如,在person函數里,我們保證能接收到name和age這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到。試想你正在做一個用戶注冊的功能,除了用戶名和年齡是必填項外,其他都是可選項,利用關鍵字參數來定義這個函數就能滿足注冊的需求。
把dic作為關鍵字參數傳入:
extra = {'city': 'Beijing', 'job': 'Engineer'} person('Jack', 24, **extra)
輸出:
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}