關鍵字引數允許你傳入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'}