Python關鍵字引數

FrankYou發表於2016-07-29

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

 

相關文章