如何解决Python 的 range() 函数是重载的内置函数吗?
我发现只有在参数列表末尾的参数才能有默认值,因为 VALUES 是按函数中的位置分配的,其定义如下
def greeting(a,b=7):
pass
而不是
def greeting(a=4,b):
pass
我对内置 range()
函数的疑问是我们可以按如下方式传递参数
range(start_value,stop_value,increment_value)
并且在调用函数时并非所有参数都需要,那么 range()
函数是重载函数,还是定义中有默认参数?
解决方法
range
获取三个参数并检查参数计数然后返回生成的可迭代对象
如果你想做类似的事情,所以你应该用 *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,step
# and return result
P。 S。 如果你想用默认参数定义函数,那么默认参数应该在其他参数之前定义
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。