Возврат по умолчанию

Рассмотрим немного модифицированную функцию из предыдущего урока:

def sub(a, b):
    c = a - b

result = sub(10, 7)
print(result)

Этот код не содержит синтаксических ошибок, и интерпретатор выполнит его. Но на экран выведется строка None! В функции нет return, но несмотря на это, код отработал и в переменную result записалось что-то.

Держитесь, мы снова повторяем мантру: вызов функции — это выражение. Значит, функция всегда возвращает что-то.

Во многих языках программирования есть специальный тип данных с единственным значением: None (или null, nil - названия типа и значения в разных языках различаются). Этот тип используется в ситуациях, когда значение чего-либо не определено.

Так вот, если в функции нет инструкции return, то интерпретатор Python автоматически возвращает None. Поэтому в переменную result записался None.

Но, конечно, смысла в этой программе нет — функция сейчас не делает ничего полезного. Давайте добавим return:

def sub(a, b):
    c = a - b
    return c

result = sub(10, 7)
print(result)

Теперь всё работает как надо.

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

Кстати, вы можете сами написать return None в теле функции. Функция будет возвращать None, как если бы в ней не было return.

Задание

Это немного странное задание, но для тренировки будет полезным. Реализуйте функцию get_none, которая просто возвращает None и больше ничего не делает.

Вам не нужно вызывать свою функцию, только определить её.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь с помощью учётной записи GitHub, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт на GitHub.