gpt4 book ai didi

python - 内置范围函数如何接受一个或三个参数?

转载 作者:太空狗 更新时间:2023-10-29 18:29:04 26 4
gpt4 key购买 nike

range 函数如何接受:单个参数,range(stop),或 range(start, stop),或 range(start,停止,步骤)。它是否使用像 *arg 这样的 variadic 参数来收集参数,然后使用一系列 if 语句根据提供的参数数量分配正确的值?本质上,range() 是否指定如果有一个参数,则它设置为停止参数,或者如果有两个则它们是 start,和 stop,或者如果有三个则将它们分别设置为 stopstartstep?我想知道如果用纯 CPython 编写范围,将如何做到这一点。

最佳答案

范围接受 1、2 或 3 个参数。这可以通过 def range(*args) 和显式代码来实现,当它获得 0 个或超过 3 个参数时引发异常。

它不能用默认参数实现,因为你不能在默认之后有一个非默认参数,例如定义范围(开始=0,停止,步骤=1)。这本质上是因为 python 必须弄清楚每个调用的含义,所以如果你用两个参数调用,python 需要一些规则来弄清楚你要覆盖哪个默认参数。不是有这样的规则,而是根本不允许。

如果你确实想使用默认参数,你可以这样做:def range(start=0, stop=object(), step=1) 并显式检查类型停止

关于python - 内置范围函数如何接受一个或三个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13366293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com