ホームページ > バックエンド開発 > Python チュートリアル > Python 関数: Return None、Return、または No Return ステートメント - どれを使用する必要がありますか?

Python 関数: Return None、Return、または No Return ステートメント - どれを使用する必要がありますか?

Mary-Kate Olsen
リリース: 2024-12-10 11:24:20
オリジナル
371 人が閲覧しました

Python Functions: Return None, Return, or No Return Statement—Which Should You Use?

Python 関数: return ステートメントの詳細

多くの Python プログラマーは、return None を使用するか、return ステートメントを使用するか、return ステートメントを使用しないかを選択するというジレンマに直面しています。関数を書くときはまったく。この記事では、これらのアプローチの微妙な違いを調査し、それぞれがいつ適切であるかについてのガイダンスを提供します。

関数トリオ:

次の 3 つの関数について考えてみましょう:

def my_func1():
  print("Hello World")
  return None

def my_func2():
  print("Hello World")
  return

def my_func3():
  print("Hello World")
ログイン後にコピー

一見すると、3 つの関数はすべて None を返すように見えます。ただし、詳しく調べると、それらの動作には微妙な違いがあります。

return None の使用:

これは、関数が値を返すように設計されていることを明示的に示しています。この場合はなし。この値は、後でコード内の他の場所で利用できます。 return None は通常、関数が提供する特定の戻り値がある場合に使用されます。

たとえば、次の関数は、人間の場合は母親を返し、それ以外の場合は None を返します。

def get_mother(person):
    if is_human(person):
        return person.mother
    else:
        return None
ログイン後にコピー

return の使用:

これは、ループ内の Break ステートメントと同様に機能します。これは主に関数の実行を終了するために機能しますが、戻り値は重要ではありません。頻繁に必要になるわけではありませんが、特定のシナリオでは return が役立つことがあります。

囚人のグループの中からナイフを持った囚人を探すこの例を考えてみましょう。

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return  # No need to check the remaining prisoners or raise an alert
    raise_alert()
ログイン後にコピー

関数の戻り値は、それ以降の使用を目的としていないため、変数に代入しないでください。

Using No returnステートメント:

このアプローチでも None が返されますが、これは関数が特定の戻り値なしで正常に終了したことを意味します。これは基本的に、C や Java などの言語の void 関数の return と同じ役割を果たします。

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
ログイン後にコピー

結論:

3 つのメソッドはすべて、最終的には None を返しますが、明確な目的を果たします。 return None は、特定の戻り値を伝える必要がある場合に使用されます。 return は関数の実行を明示的に終了するために使用され、return ステートメントを使用しない場合は、指定された戻り値なしで関数が正常に完了したことを示します。

以上がPython 関数: Return None、Return、または No Return ステートメント - どれを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート