是Python';s range()函数是重载的内置函数吗?

是Python';s range()函数是重载的内置函数吗?,python,range,default-parameters,Python,Range,Default Parameters,我发现只有参数列表末尾的参数才能有默认值,因为值是按函数中的位置分配的,如下所示 def问候语(a,b=7): 通过 而不是 def问候语(a=4,b): 通过 我对内置的range()函数的疑问是,我们可以按如下方式传递参数 range(start_value, stop_value, increment_value) 调用函数时不需要所有参数,range()函数是重载函数,还是定义中有默认参数?range获取三个参数,并检查参数计数,然后返回生成的iterible对象 如果您想执行类似

我发现只有参数列表末尾的参数才能有默认值,因为值是按函数中的位置分配的,如下所示

def问候语(a,b=7):
通过
而不是

def问候语(a=4,b):
通过
我对内置的
range()
函数的疑问是,我们可以按如下方式传递参数

range(start_value, stop_value, increment_value)

调用函数时不需要所有参数,
range()
函数是重载函数,还是定义中有默认参数?

range
获取三个参数,并检查参数计数,然后返回生成的iterible对象

如果您想执行类似的操作,那么应该将所有参数替换为
*args
,然后执行以下操作

def range_(*args):
    start = 0
    end = 0
    step = 0
    # args is a list of arguments
    if len(args) == 1:
        end = args[0]
    elif len(args) == 2:
        start, end = args
    elif len(args) == 3:
        start, end, step = args
    else:
        print("the function gets maximum three arguments")
    # calculating something with start, end, step
    # and return result
附言。
如果要使用默认参数定义函数,则应先定义默认参数,然后再定义其他参数

如果要实现类似的函数,请参阅。但有关“如何实现它”。。。我认为实现是用C语言实现的(你为什么想知道呢?)你的问题不清楚,
range()
确实有可选参数。不清楚如何使用它吗?还是不清楚您将如何自己编写这样一个函数?请具体点。@Grismar,我知道如何使用range()函数,我不会编写类似的函数。我的疑问是如果有可选参数,那么它应该只在末尾,而不是在第一个右边(我问的是内置range()函数中的start_值。所以你问的是
range()如何
函数处理可选的起始值?为什么需要知道?如果想编写类似的函数,请直接提问。如果您只是好奇,请查看源代码。如果您不了解如何使用它,请给出一个使用示例。