有默认参数的函数,默认参数为什么需后置

学习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

也就是说,缘由是编译器是从左向右遍历的。

相关文章
相关标签/搜索