Получение функции в качестве параметра другой функции - PullRequest
0 голосов
/ 15 сентября 2018

Допустим, у меня есть 2 функции, подобные этим:

def list(n):
   l=[x for x in range(n)]
   return l
def square(l):
   l=list(map(lambda x:x**2,l))
   print(l)

Первая создает список из всех чисел в данном диапазоне, который равен "n", а вторая получает список какпараметр и возвращает возведенные в квадрат значения этого списка.Однако, когда я пишу:

square(list(20))

, возникает ошибка «объект карты не может быть интерпретирован как целое число», и всякий раз, когда я стираю одну из функций выше и запускаю другую, она отлично работает, и я понятия не имею,какую ошибку я совершил.

1 Ответ

0 голосов
/ 15 сентября 2018

Вы переопределили стандартную функцию list()! Переименуйте его в my_list() и очистите код соответствующим образом.

В качестве примечания, ваша функция list() делает именно то, что сделает list(range(n)). Зачем тебе это вообще нужно? Фактически, для большинства целей (включая ваш пример) достаточно только range(n).

Наконец, вы не передаете функцию в качестве параметра. Вы передаете значение, сгенерированное другой функцией. Это не то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...