ジェネレーター関数、イテレーター、および yield キーワードは、データを段階的に生成できるようにする Python の基本概念です。 .
Iterators は 1 つの値を返すオブジェクトですコレクションから一度に。後続の各値にアクセスするには、 next() メソッドを繰り返し呼び出します。
ジェネレーター関数はイテレーターを作成します。これらは通常の関数に似ていますが、yield ステートメントが含まれています。 yield は return と同じように動作しますが、関数を終了するのではなく、実行を一時停止して値を返します。
yield キーワードはジェネレーター関数内で使用されます。 yield が呼び出されるたびに、ジェネレーター関数は指定された値を返し、実行を一時停止します。ジェネレーターが再度呼び出されると、最後の yield ステートメントが終了した時点から実行が再開されます。
次のコードを考えてみましょう。
def generate_numbers(): for i in range(5): yield i
このコードは次のように定義します。 0 から 4 までの整数を生成するジェネレーター関数。 next() で呼び出すと、関数は 0、1、2、3、および 4 を返します。
ジェネレーター関数は一般的に使用されます:
早期の疲労を避けるために発電機の機能を制御できます。例:
class Bank: def create_atm(self): while True: yield "0"
このコードは、無限 ATM ジェネレーターを作成します。ただし、self.crisis に True を代入することで終了できます。このアプローチは、リソースの可用性を制御するのに役立ちます。
itertools モジュールは、リストからすべての可能な順列を生成できる permutations() など、反復可能オブジェクトを操作するための追加ツールを提供します。
以上がPython の「yield」キーワードはどのようにして効率的なデータ生成を可能にするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。