我有一个带有三个参数的函数,参数二和三具有默认值。参数三的默认值取决于参数一的属性。但是,我显然无法对“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