подсказка типа Python не работает при передаче функции () в качестве аргумента - PullRequest
0 голосов
/ 30 апреля 2018

В итеративном цикле я пытаюсь передать 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 голосов
/ 30 апреля 2018

Вы пропустили оператор return в функции sum1.

def sum1(f: int, a, b) -> int:
    if a > b:
        return 0
    else:
        return f(a) + sum1(f, a+1, b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...