python學習筆記,特做記錄,分享給大家,希望對大家有所幫助。
關鍵字參數
可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple。而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數内部自動組裝為一個dict。請看示例:
def person(name, age, **kw):
print ('name:', name, 'age:', age, 'other:', kw)
person('Michael', 30)
函數person除了必選參數name和age外,還接受關鍵字參數kw。在調用該函數時,可以隻傳入必選參數:
運作結果如下:
name: Michael age: 30 other: {}
Process finished with exit code 0
也可以傳入任意個數的關鍵字參數:
person('Evan', 29, city='shanghai')
person('Evan', 28, city='beijing', gender='M')
運作結果如下:
name: Evan age: 29 other: {'city': 'shanghai'}
name: Evan age: 28 other: {'city': 'beijing', 'gender': 'M'}
Process finished with exit code 0
關鍵字參數有什麼用?它可以擴充函數的功能。
比如,在person函數裡,我們保證能接收到name和age這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到。
試想你正在做一個使用者注冊的功能,除了使用者名和年齡是必填項外,其他都是可選項,利用關鍵字參數來定義這個函數就能滿足注冊的需求。
和可變參數類似,也可以先組裝出一個dict,然後,把該dict轉換為關鍵字參數傳進去:
extra = {'city': 'beijing', 'gender': 'M'}
person('Jack', 27, city=extra['city'], gender=extra['gender'])
當然,上面複雜的調用可以用簡化的寫法:
extra = {'city': 'beijing', 'gender': 'M'}
person('Jack', 27, **extra)
兩種寫法的運作結果是一樣的,但是明顯下面的方法友善省事。
extra表示把extra這個dict的所有key-value用關鍵字參數傳入到函數的kw參數,kw将獲得一個dict,注意kw獲得的dict是extra的一份拷貝,對kw的改動不會影響到函數外的extra。
整理出 45 本電子版書籍
歡迎關注公衆号網羅開發,回複關鍵字python可領取python測試demo和學習資源,demo持續更新中,大家一起學python,網羅天下方法,友善你我開發。
希望可以幫助大家,如有問題可加QQ技術交流群: 668562416
如果哪裡有什麼不對或者不足的地方,還望讀者多多提意見或建議
如需轉載請聯系我,經過授權方可轉載,謝謝
歡迎關注公衆号「網羅開發」