Python---函數---關鍵字參數
阿新 • • 發佈:2017-08-03
python 函數 參數 關鍵字參數 dict **kw
# 關鍵字參數 # 可變參數允許你傳入0個或任意個參數,這些可變參數調用時自動組裝為一個tuple # 而關鍵字參數允許傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict def person(name, age, **kw): print(‘name:‘, name, ‘age:‘, age, ‘other‘, kw) # 函數person除了必選參數name和age外,還接受關鍵字參數kw。 # 在調用該函數時,可以只傳入必選參數 person("yel", 23) # 也可以傳入任意個數的關鍵字參數 person(‘Bob‘, 35, city=‘Beijing‘) person(‘Adam‘, 45, gender=‘M‘, job=‘Engineer‘) # ----------------------------------------------------------------------------------------------- # 關鍵字參數可以擴展函數的功能 # 比如,在person函數裏,我們保證能接收到name和age這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到 # 試想正在做一個用戶註冊的功能,除了用戶名和年齡是必填項外,其他都是可選項,利用關鍵字參數來定義這個函數就能滿足註冊的需求 # ----------------------------------------------------------------------------------------------- # 和可變參數類似,也可以先組裝出一個dict,然後,把該dict轉換為關鍵字參數傳進去 extra = {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘} person(‘Jack‘, 24, city=extra[‘city‘], job=extra[‘job‘]) # 上面復雜的調用可以用簡化的寫法 # **extra表示把extra這個dict的所有key-value用關鍵字參數傳入到函數的**kw參數,kw將獲得一個dict,註意kw獲得的dict是extra的一份拷貝,對kw的改動不會影響到函數外的extra person(‘Jack‘, 24, **extra)
Python---函數---關鍵字參數