【发布时间】:2012-11-02 05:01:42
【问题描述】:
范围函数如何接受:单个参数range(stop),或range(start, stop),或range(start, stop, step)。它是否使用 variadic 之类的 *arg 参数来收集参数,然后使用一系列 if 语句根据提供的参数数量分配正确的值?本质上,range() 是否指定如果有一个参数,则设置为停止参数,或者如果有两个则它们是start 和stop,或者如果有三个则将它们设置为分别是stop、start 和 step?我想知道如果要在纯 CPython 中编写 range 会如何做到这一点。
【问题讨论】:
-
RTSL(阅读源代码,卢克)。
-
我希望这取决于实现。你正在使用什么实现? cPython?杰通?皮皮?
-
查看this对问题的回答如何在Python中实现可选的第一个参数(重现 slice() 行为)。
标签: python function arguments range