直接定义这样的函数时,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
- >>>
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)呢?或者其它的什么呢?...