在 Python 中,我知道默认参数在最后,非默认参数不能跟在默认参数之后。没事儿。例如:
>>> def foo(x=0, y):
return x, y
SyntaxError: non-default argument follows default argument
正如预期的那样没关系。
但是,当我希望第一个参数应该是默认参数时,情况如何?例如,从上面的代码中可以看出,x
它必须是第一个参数,并且它的默认值应该是 0。
是否有可能做到这一点?我问是因为即使在range
函数中,我猜它是这样的:
def range(start=0, end):
pass
那么这是如何完成的,如果不可能,这是如何实现的range
?请注意,我坚持将第一个参数设为默认值,这就是重点。我range
以此为例,因为它非常适合我的问题。当然可以实现range
as def range(end, start=0)
,但这不是重点。