gpt4 book ai didi

python - 在python中创建默认参数

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:00 24 4
gpt4 key购买 nike

我有一个具有三个参数的函数,参数二和三具有默认值。参数三的默认值取决于参数一的属性。但是,我显然无法对“def”行中的参数一执行任何操作,因此我无法找到一种有效的方法来定义参数三的默认值。在 Python 中执行此操作的标准方法是什么?

以下代码是我正在使用的。第一行抛出错误,因为我还没有真正定义“数据”。最佳解决方法是什么?

def stooge_sort(data, a = 0, b = len(data) - 1):
if data[a] > data[b]:
data[a], data[b] = data[b], data[a]
if b + 1 - a >= 3:
thirds = (b + 1 - a) / 3
stooge_sort(data, a, b - thirds)
stooge_sort(data, a + thirds, b)
stooge_sort(data, a, b - thirds)
return data

最佳答案

请记住,当创建 函数对象时,默认参数仅被评估一次,因此无法将这样的表达式放在那里。这与人们对分配了可变值的默认参数的行为感到惊讶的原因相同。

通常的方法是选择一个您知道 b 永远不会成为的默认值。 None 通常是一个不错的选择。

def stooge_sort(data, a=0, b=None):
if b is None:
b = len(data) - 1

关于python - 在python中创建默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073659/

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