学习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
也就是说,缘由是编译器是从左向右遍历的。