在Python 3.x中經常看到定義函數有一個單獨的 * 參數?定義這樣參數的目的是?怎樣對其取值呢?

def run(self, func, args=(), kwargs={}, *, callback):pass


這種參數叫命名關鍵字參數,它強迫你調用函數的時候寫出參數名。

只有與時俱進的Python教程才會涉及這些新內容:

函數的參數 - 廖雪峰的官方網站 (建議收藏該網站)


算是一個trick.

Python3開始支持keyword-only 參數,如果你希望強迫調用者使用,在你期待的參數前加*:

def f(a, * , b):

return a, b

這樣必須調用時明確寫出b:

f(1, b = 2)

摘自 Fluent Python,P149-150


推薦閱讀:

python的庫、方法這麼多,寫程序的時候能記住嗎?
為什麼說不能用import導入自定義的包?

TAG:Python3x | Python編程 |