python - 根据另一个参数的值设置一个参数的默认值
问题描述
所以我想创建一个函数,生成从“开始”到“结束”与“大小”一样多的连续数字。对于迭代,它将在函数内部计算。但我无法设置参数“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 上提问,如果我犯了错误,请见谅)
解决方案
这是一个非常标准的模式:
def consecutive_generator(size=20, start=0, end=None):
if end is None:
end = size + start
推荐阅读
- android - 如果未在 firebase 中链接,则停止使用电话号码登录
- java - 如何长时间操作位?
- javascript - 如何在 Bootstrap 3 进度条中给出计算出的宽度?
- ios - UITextField 上的清除按钮
- typescript - 如何使用 Typescript 添加网格以伪造查看器 v6?
- c# - 在忽略 xmlns 的同时更改元素值
- c++ - 如何修复条件复制期间发生的崩溃
- python - 如何在 Tensorflow 中获得损失 wrt 模型预测的梯度?
- office-js - 如何使用 officjs 关闭浏览器
- sql-server - 键“applicationintent”的值无效。(系统.数据)