← Все вопросы

Про return без значения

Задан 2 месяца назад21 просмотров1 ответ
0

Что вернёт функция, если в конце не написать return? Я думал, что ничего, но когда я сохраняю результат вызова такой функции в переменную, в ней оказывается None (или undefined в JS). Получается, функция всё-таки что-то возвращает? Зачем так сделано?

1 ответ

1

Функция возвращает None всегда, когда до return дело не дошло или он пустой. Это не «ничего» — это конкретный объект-заглушка со смыслом «значения нет».

Сделано так, чтобы вызов функции всегда был выражением с результатом. Иначе x = f() для функции без return был бы ошибкой, и функции пришлось бы делить на два сорта, как в Паскале с его procedure и function. В JS логика та же, только заглушка называется undefined.

Кстати, самый частый способ наступить на это — print: x = print('привет') кладёт в x None, потому что print печатает, а не возвращает.

Ваш ответ

, чтобы ответить на вопрос.