在这种情况下为什么不能将数组长度设置为默认参数?
def q_helper(arr, start=0, end=len(arr)-1):
pivot = arr[start]
swapIdx = start
for i in range(len(arr)):
if pivot > arr[i]:
swapIdx += 1
swap(arr, swapIdx, i)
swap(arr, start, swapIdx)
return swapIdx
答案 0 :(得分:-1)
简短的答案是:您不能基于先前的参数设置默认参数,因为python在定义函数时(而不是在调用函数时)需要知道该值。
一个更长的答案可能是:如果您正在寻找某种Python风格的方法来进行所需的操作,建议将默认值设置为None
,然后将其设置为所需的变量成为None
。像这样:
def q_helper(arr, start=0, end=None):
if end is None:
end = len(arr) - 1 # if not set, set it to one less than the array's length