python3 中的 range 函数接受三个参数。其中两个是可选的。所以参数列表看起来像:
[开始],停止,[步骤]
这意味着(如果我错了,请纠正我)在非可选参数之前有一个可选参数。但是,如果我尝试定义这样的函数,我会得到:
>>> def foo(a = 1, b, c = 2):
print(a, b, c)
SyntaxError: non-default argument follows default argument
这是我作为“普通”python用户无法做到的事情,还是我可以以某种方式定义这样的函数?当然我可以做类似的事情
def foo(a, b = None, c = 2):
if not b:
b = a
a = 1
但例如帮助功能会显示奇怪的信息。所以我真的很想知道是否可以定义一个类似内置的函数range
。