学习python时思考的一个问题。
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000
默认参数可以省略用户输入。
当存在多个默认参数时,如果默认参数在前:如foo(a=1,b=2,c=3,x)
调用:foo(5)
当只有一个实参传入,编译器不知道是改变默认参数值,还是给x。
但也许调用者(程序猿)自然地认为是传给唯一没有默认参数的x,这样的话编译器需要判断foo共有几个默认参数,一一跳过这些参数,再传给x。
如果默认参数后置,如foo(x,a=1,b=2,c=3)
调用:foo(5)
编译器自然会读到第一个没有默认参数的x,赋值给它。
也就是说,原因是编译器是从左向右遍历的。