戻り値なしで関数を呼び出す反復を想定しましょう。私のプログラムの振る舞いは、この擬似コードで説明されています
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で実装すると、関数がNone
を返すのが気になります。 「関数の本体でチェックが失敗した場合、戻り値を持たない関数を終了する」ためのより良い方法はありますか?
単純に使用できます
return
これはまったく同じです
return None
また、実行は、None
ステートメントをヒットせずに関数本体の最後に到達した場合、return
を返します。何も返さないことは、PythonでNone
を返すことと同じです。
私はお勧めします:
def foo(element):
do something
if not check: return
do more (because check was succesful)
do much much more...
パラメーターを指定せずにreturn
ステートメントを使用して、関数を終了できます。
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return
do much much more...
または、問題を通知する場合は例外を発生させます
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
raise Exception("cause of the problem")
do much much more...