1. ホーム
  2. python

[解決済み】pythonで文字通り何も返さない方法はありますか?

2022-01-27 23:08:33

質問

Pythonを勉強しているのですが、次のようなコードを書く方法はないでしょうか?

def f(x):
    if x>1:
       return(x)
    else:
        # don't return anything

コードのelseの部分について質問です。以下の場合、何も返さないようにしたいのです。 x<=1 を返します。 None は受け入れられません。

解決方法は?

Pythonでは、何も返さないということはありません。すべての関数は(例外を発生させない限り)何らかの値を返します。もし、明示的な return 文が使用されている場合、Pythonはそれを None .

そこで、自分の関数に最もふさわしいものは何かを考える必要があります。を返すべきか、それとも None (または他のセンチネル値) を作成し、呼び出し側のコードにこれを検出する適切なロジックを追加するか、例外を発生させます (呼び出し側のコードが望むなら、これをキャッチすることができます)。