1.10ジェネレータ

1.発電機の定義

発電機は、データタイプとして理解することができる、そのデータ型が自動的に反復プロトコル(他のデータ型が呼び出す必要が独自の方法ITER内蔵)

Pythonで、発電機としても知られている計算機構ながら、循環させながら。

2.効果ジェネレータ

1.リスト式、我々は直接リストを作成することができ、しかし、メモリ制限の対象は、リストは確かに限られた容量です。

2.また、我々は唯一の占有スペースの大半が無駄になっていることを要素の背後にある最初の数の要素にアクセスする必要がある場合、多くのストレージスペースを取るだけでなく、百万の要素を含むリストを作成します。

したがって3、リスト要素は、我々は、後続の要素の処理サイクルで算出し続けることができる場合、そのアルゴリズムに従って実施計算することができますか?

4.これは、このように多くのスペースを節約し、完全なリストを作成する必要がなくなります。この計算のための機構を循環させながらPythonで、発電機として知られている:ジェネレータ。

3.発電所

1)それは、関数本体の最後の復帰の位置を記憶し、関数発生器です。

2)関数の呼び出しと、すべてのローカル変数最後残る定数の中間へのジャンプ発生関数呼び出しに対する第2の(又はn番目)に。

ジェネレータは、フロー制御構成でその位置を「記憶」; 3)そのデータの状態を「記憶」を生成するだけでなく。

4)関数発生器、及び関数のパラメータが保持されます。

5)次の反復への呼び出しが、使用されるパラメータは、下の最初である場合に予約であることを、関数呼び出し全体のすべてのパラメータは、最初の時間が確保さ呼び出されたときではなく、新規作成の

4.収率発電操作機構

Pythonで、収率が発生ようにすることができます。

あなたは数にビルダーを依頼するとyield文が現れるまで1)、発電機は、発電機がダウンして実行し続けないだろう、あなたに降伏の発電機のパラメータを実行します。

あなたは次の番号であることを彼に尋ねたとき2)、彼はその後停止し、あなたのためのパラメータ、yield文が出現するまでの最後の状態から実行を開始します。だから、再び

3)Pythonで、あなたは関数を定義する場合、yieldキーワードを使用し、これは、ファンクションジェネレータであります

4)それは、多くの異なる機能があります実行し、他の一般的な機能になるreturn文と同じように、結果の値を得ることができ、むしろ普段よりもオブジェクトを返します。あなたが値を取得したい場合は、次の()関数を呼び出す必要があります

5)次の次の関数が呼び出されるまで、次のイテレータ関数の呼び出しは、この場所での歩留まりや一時停止の戻り値の後ろに、場所を得るために実行するファンクション・ジェネレータは、すべての状態は、ライブ保持されるたび、またはタッチ異常なループを抜けます。


収量が達成FIB 数を
デフFIB(MAX_NUM):
    、B = 1,1
    <MAX_NUM中:
        降伏B
        、B = B + bの
 
G = FIB(10)#は、発電を生成する:[1、2、3、5、8、13]
印刷(グラム.__次__())#最初の呼び出しの戻り値:1
プリント(リスト(G))#リストの残りの要素は次のようになる[2、3、5、8、13]

おすすめ

転載: www.cnblogs.com/lihouqi/p/12664239.html