學習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
也就是說,緣由是編譯器是從左向右遍歷的。