我编写了一个类,试图重新创建默认的python range类,但我意识到初始化的行为与平常有所不同.
通常,函数的必需参数必须在默认参数f.e.之前:
def foo(a, b, c='bar'):
return a, b, c
但是在range()
的情况下,你可以这样使用它.其中stop
是唯一必需的参数.所以基本上:
print(list(range(5)))
print(list(range(2, 6)))
print(list(range(0, 10, 2)))
>>[0, 1, 2, 3, 4]
>>[2, 3, 4, 5, 6]
>>[0, 2, 4, 6, 8]
这是否意味着有一种方法可以编写一个函数,使所需的参数不必是第一个参数?它是如何工作的?我如何才能重新创建它?
提前感谢!!!