range()接受1个位置参数和两个可选参数,并根据传入的参数的不同来不同地 解释 这些参数。
如果仅传递了 一个 参数,则假定它是该
stop参数,否则,第一个参数将被解释为开始。
在现实中,
range(),编码在C,采用可变数目的参数。您可以像这样模拟:
def foo(*params): if 3 < len(params) < 1: raise ValueError('foo takes 1 - 3 arguments') elif len(params) == 1 b = params[0] elif: a, b = params[:2] c = params[2] if len(params) > 2 else 1但您也可以交换参数:
def range(start, stop=None, step=1): if stop is None: start, stop = 0, start



