Давайте предположим итерацию, в которой мы вызываем функцию без возвращаемого значения. То, как должна вести себя моя программа, объясняется в этом псевдокоде:
for element in some_list:
foo(element)
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return None
do much much more...
Если я реализую это в python, меня беспокоит, что функция возвращает a None
. Есть ли лучший способ для «выхода из функции, которая не имеет возвращаемого значения, если проверка не проходит в теле функции»?
raise
сделать исключение (или, очень редко, заставить функцию возвращать True / False)Ответы:
Вы могли бы просто использовать
который делает точно так же, как
Ваша функция также вернется,
None
если выполнение достигнет конца тела функции без нажатия наreturn
оператор. Возврат ничего не означает возвращениеNone
в Python.источник
return
не работает, если я установилa = method()
, внутри метода, который я используюreturn
, он все еще продолжает выполнять код за. Выход должен быть похож на php exit (), он мгновенно ломает программу.import sys
сначала, а затем,sys.exit()
если вы хотите выйти, но сообщить об успехе илиsys.exit("some error message to print to stderr")
.Я бы предложил:
источник
Вы можете использовать
return
оператор без каких-либо параметров для выхода из функцииили поднять исключение, если вы хотите получить информацию о проблеме
источник