python类型提示在传递function()作为参数时不起作用

时间:2018-04-30 04:26:18

标签: python types casting

在迭代循环中,我试图将cube()作为参数之一传递给另一个函数sum(),但是在第二次迭代sum()值中获取错误是返回NoneType数据类型而不是int数据类型甚至在类型转换函数值之后。

代码:

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:+:' int'不支持的操作数类型和' NoneType'

1 个答案:

答案 0 :(得分:0)

您错过了return函数中的sum1声明。

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