将function()作为argumen传递时,python类型提示不起作用

2024-03-29 14:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

在迭代循环中,我试图将一个cube()作为参数之一传递给另一个函数sum(),但在第二个迭代sum()值中得到的错误是返回NoneType datatype代替int datatype,即使在类型转换函数值之后也是如此。你知道吗

代码:

def main():
    print(sum1(cube, 1, 3))

def cube(x:int) ->int :
    return(x*x*x)

def sum1(f:int ,a,b) -> int :
    if a>b : 0
    else :
        f(a) + sum1(f, a+1, b)

if __name__ == '__main__' : main()

我得到的错误是:

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'


Tags: 函数代码参数returnifmaindef错误
1条回答
网友
1楼 · 发布于 2024-03-29 14:35:17

sum1函数中缺少return语句。你知道吗

def sum1(f: int, a, b) -> int:
    if a > b:
        return 0
    else:
        return f(a) + sum1(f, a+1, b)

相关问题 更多 >