【问题标题】:python type hint not working while passing function() as argument将函数()作为参数传递时python类型提示不起作用
【发布时间】:2018-10-10 03:52:58
【问题描述】:

在一个迭代循环中,我试图将一个 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”

【问题讨论】:

  • 您的sum1 函数没有返回任何内容。

标签: python types casting


【解决方案1】:

您错过了sum1 函数中的return 语句。

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

【讨论】:

  • 我的错 :(,python 新手.. 但非常感谢 Stas Deep 的帮助。
猜你喜欢
  • 1970-01-01
  • 2020-07-24
  • 2018-01-04
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多