← Все вопросы
Чем return без значения отличается от того, что return вообще не написан?
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.
Ваш ответ
Войдите, чтобы ответить на вопрос.