有默認參數的函數,默認參數爲什麼需後置

學習python時思考的一個問題。python

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000學習

默認參數能夠省略用戶輸入。編譯器

當存在多個默認參數時,若是默認參數在前:如foo(a=1,b=2,c=3,x)編譯

調用:foo(5)遍歷

當只有一個實參傳入,編譯器不知道是改變默認參數值,仍是給x。程序

但也許調用者(程序猿)天然地認爲是傳給惟一沒有默認參數的x,這樣的話編譯器須要判斷foo共有幾個默認參數,一一跳過這些參數,再傳給x。d3

若是默認參數後置,如foo(x,a=1,b=2,c=3)思考

調用:foo(5)co

編譯器天然會讀到第一個沒有默認參數的x,賦值給它。d3

也就是說,緣由是編譯器是從左向右遍歷的。

相關文章
相關標籤/搜索