Подтвердить что ты не робот

NameError: глобальное имя 'reduce' не определено

Я новичок в Python. Не могли бы вы рассказать мне, что случилось со следующим кодом? Когда я запустил его, я получил сообщение об ошибке "NameError: глобальное имя" уменьшить "не определено". Я спросил Гульге, но это бесполезно.: (

def main():
    def add(x,y): return x+y
    reduce(add, range(1, 11))

if __name__=='__main__':
    main()
4b9b3361

Ответ 1

Я собираюсь предположить, что:

  • Вы используете Python 3 и
  • Вы следуете руководству, предназначенному для Python 2.

Функция reduce, поскольку она обычно не используется, была удалена из встроенных функций в Python 3. Она по-прежнему доступна в модуле functools, поэтому вы можете сделать:

import functools

def main():
    def add(x,y): return x+y
    functools.reduce(add, range(1, 11))