目次
Python Yield とは何ですか?
以下の例を見てください -
Python におけるイールドとリターンの違い
ホームページ バックエンド開発 Python チュートリアル Python では、Yield と Return の違いは何ですか?

Python では、Yield と Return の違いは何ですか?

Sep 15, 2023 pm 03:37 PM
収量 - ジェネレーター return - 戻り値 違い - 利回りとリターン

Python では、Yield と Return の違いは何ですか?

Python では、generator の定義は yield ステートメントを使用して行われます。したがって、yield が実際に何に使用されるかについて詳しく説明する前に、generators の概要を理解することが重要です。 Python を初めて使用する場合は、これまでに Python ジェネレーターを使用したことがある可能性が高くなります。ジェネレーターは Python で重要な役割を果たします。 Python では、ジェネレーターを使用してイテレーターを生成できますが、プロセスの形式は少し異なります。

Python ジェネレーターは、動的に一時停止および再開でき、一連の結果を作成できる関数です。乱数を生成するために使用することもできます。 Python 2.2 では、ジェネレーターは最初にオプション機能として導入されました。 Python 2.3 では、これらは強制されます。ジェネレーターの機能は Python 2.5 で大幅に改善されましたが、すでに十分な機能があります。

下位互換性を維持するために、Python 2.2 にジェネレーターが追加されたことにより、 "yield" と呼ばれる新しいキーワード が導入されました。ジェネレーターを使用するには、_future_ モジュールからジェネレーターをインポートする必要があります。 Python 2.3 リリースでジェネレーターがデフォルトになったとき、変更が不要になったことを反映してこれが変更されました。

yield ステートメントを使用して関数の実行を一時的に停止すると、後で復元できるように関数の状態を保存しながら、呼び出し元に値が返されます。これは、戻り値を取得した後でもジェネレーター全体を再起動できることを意味します。関数の実行は return ステートメントで終了し、このステートメントは関数を呼び出した人に値を返します。欠落している場合、関数は何も返しません。

Python Yield とは何ですか?

Python ジェネレーターでは、ローカル変数を削除せずにジェネレーターを呼び出した人に値が返されるように、yield ステートメントが関数の return を置き換えます。 Python プログラミングでの yield ステートメント実行の機能をよりよく理解するには、まず ジェネレーターについて理解する必要があります。

ジェネレーター関数と通常の関数の違いは、ジェネレーター関数の定義に「yield」ステートメントがあることです。これは「yield」キーワードで始まり、この関数を呼び出した人に返されるジェネレータ オブジェクトを識別します。

Python では、「ジェネレーター」と呼ばれる特定のタイプの関数は、関数を呼び出した人にデータ値を返すのではなく、別のジェネレーター オブジェクトを返します。 yield キーワードを使用すると、関数の実行を一時的に停止し、状態を保存し、後で関数を再開できます。

###例###

以下の例を見てください -

リーリー ###出力### リーリー

Python リターンとは何ですか?

yield

ステートメントとは対照的に、

return

ステートメントは、呼び出し元の関数に値を返しながら関数を終了させます。本質的に手続き型の関数は、呼び出し元に明示的には何も返しませんが、代わりに呼び出し元の関数に送り返される値を返します。関数には複数の return ステートメントを含めることができますが、それらの各ステートメントの呼び出しごとに呼び出すことができるのは 1 つだけです。 ほとんどの場合、return ステートメントは関数ブロックの最後に配置されます。その目的は、関数に含まれるすべてのステートメントを実行した最終結果を返すことです。ただし、関数ブロックの前に

return

ステートメントを使用して、ブロック内の後続のすべてのステートメントの実行を停止することもできます。これは、関数の実行を防ぐために使用された場合に発生する可能性があります。これにより、呼び出し元はプログラムの実行を直ちに再開します。 「None」戻りオブジェクト タイプは、return オブジェクトに値が指定されていない場合の Python の戻りオブジェクト タイプと同等です。 ###例### 次の例は、Python での return の使用法を示しています -

リーリー ######出力############ リーリー

Python におけるイールドとリターンの違い

次の表は、Python における Yield と Return の主な違いを示しています -

###収率### ###戻る### ###ベース### ほとんどの場合、実行の終了は return キーワードを使用して通知され、結果を呼び出し元のステートメントに「返します」。 ###関数### ###使用### ###埋め込む### yield ステートメントの後に記述されたコードは、次の関数呼び出しで実行されます。 ###コンパイル### 一度に 1 回だけ実行されます。 ステートメントはジェネレーター オブジェクトを生成し、プログラムを終了せずに呼び出し元に複数の値を返すことができます。一方、return ステートメントは、内部から値を返すために使用されます。関数を実行すると、プログラムが終了します。 return ステートメントは、関数内から呼び出し元に値を返すために使用されます。
基本的な比較 ほとんどの場合、yield 関数を使用して、一般的な Python 関数をジェネレーターに変換する必要があります。
ローカル変数を失わずに関数の実行を一時停止するために、関数の return を置き換えます。 関数を終了し、呼び出し元に値を返します。
呼び出し元は、ジェネレーターが呼び出し元に中間結果を提供するときにこの関数を使用します。 関数が値を渡す準備をしている場合、これを使用する必要があります。
ただし、return ステートメントの後に書かれたコードは実行されません。 複数回実行する機能があります。
###結論は### yield

以上がPython では、Yield と Return の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

See all articles