首页 > 代码库 > Python - 在定义函数时,为什么默认参数不能放在必选参数前面?

Python - 在定义函数时,为什么默认参数不能放在必选参数前面?

直接定义这样的函数时,Python会报错:

Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:16:31) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> def foo(p1, p2=6, p3):
	return 0
SyntaxError: non-default argument follows default argument
>>> 
因为调用函数时可能会产生歧义,比如调用上面的函数foo(1, 2),是该调用foo(1, 6, 2)呢?还是该调用foo(1, 6)呢?或者其它的什么呢?...

Python - 在定义函数时,为什么默认参数不能放在必选参数前面?