← Все вопросы

Чем return без значения отличается от того, что return вообще не написан?

Задан 10 месяцев назад357 просмотров3 ответа
8

Встречаю два варианта:

def a(x):
    if x < 0:
        return
    print(x)

def b(x):
    print(x)

Обе как будто ничего не возвращают. Есть ли вообще разница между return без значения и полным отсутствием return?

3 ответа

15
✓ Принятый ответ — помог автору

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

Разница только в потоке управления: return досрочно прерывает функцию. В твоём a строка print(x) не выполнится для отрицательных, потому что return выходит из функции раньше. Так что пустой return используют именно как «выйти отсюда прямо сейчас», а не чтобы что-то отдать.

5

Никакой по результату, везде None. Пустой return — это просто ранний выход.

2

Ничем, оба дают None.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект