带有递归函数的参数的问题

问题描述

这是代码

func  writeGroups(pdf *pdf.Maroto) {
    (*pdf).AddPage()
}

当我为def summationTwo(lower,upper,margin): """Returns the sum of the numbers from lower through upper,and outputs a trace of the arguments and returns values on each call""" blanks = " " * margin print(blanks,lower,upper) if lower > upper: print(blanks,0) return 0 else: result = lower + summation(lower + 1,margin + 4) print(blanks,result) return result summationTwo (1,4) 函数调用插入两个参数时,我得到一个回溯,内容为:“ TypeError:summation()接受2个位置参数,但给出了3个位置参数。”

但是,当我插入两个参数时,会得到以下回溯:“ TypeError:summationTwo()缺少1个必需的位置参数:'margin'”

这是怎么回事?

解决方法

sumsum与sumsumTwo的功能不同。当仅使用两个参数进行调用时,则说明您没有提供足够的参数。那是一个错误,事情就此止步。当您提供三个参数时,它将遍历并实际调用该函数。当到达调用带有太多参数的求和的行时,那就是错误。我不知道这个求和函数,也没有在这里定义它,所以我真的不知道它期望什么参数。但是错误消息似乎暗示只需要两个