数を計算するために、いつも同じ引数チェック コードを書いていることに気が付きました。
def myfun(a, b):
if a < 0:
raise ValueError('a cannot be < 0 (was a=%s)' % a)
# more if.. raise exception stuff here ...
return a + b
より良い方法はありますか?これらのことには「アサート」を使用しないように言われました (ただし、エラーの原因となった変数の値がわからないことを除けば、問題はわかりません)。
編集:明確にするために、引数は通常単なる数値であり、エラーチェック条件は複雑で自明ではない可能性があり、後で例外につながるとは限りませんが、単に間違った結果になります。(不安定なアルゴリズム、無意味なソリューションなど)