首页 > 解决方案 > 根据另一个参数的值设置一个参数的默认值

问题描述

所以我想创建一个函数,生成从“开始”到“结束”与“大小”一样多的连续数字。对于迭代,它将在函数内部计算。但我无法设置参数“end”的默认值。在我进一步解释之前,这是代码:

# Look at this -------------------------------
#                                           ||
#                                           \/
def consecutive_generator(size=20, start=0, end=(size+start)):
    i = start
    iteration = (end-start)/size

    arr = []
    temp_size = 0

    while temp_size < size:
        arr.append(i)

        i += iteration
        temp_size += 1

    return arr

# with default end, so the 'end' parameter will be 11
c1= consecutive_generator(10, start=1)
print(c1)

# with end set
c2= consecutive_generator(10, end=20)
print(c2)


上面可以看出(关于'end'参数的默认值),我要实现的是'end'参数,其默认值为'start'+'size'参数(那么迭代将是1)

输出肯定会出错。那么我该怎么做呢?(这是我第一次在 stackoverflow 上提问,如果我犯了错误,请见谅)

标签: pythonfunctionparametersdefault-parameters

解决方案


这是一个非常标准的模式:

def consecutive_generator(size=20, start=0, end=None):
   if end is None:
       end = size + start

推荐阅读