1 からコレクションをインポートのIterable 2 からのコレクションをインポートイテレータ 。3 #発話ブログエントリとして、発電機が発電機が次である場合、次のように書くことができる()コールまたは発電文を生成するために実行されているサイクル、可変収率続い収率に割り当てられた値は、収率が戻ります 4。 DEF str_ip(ip_start): 5 ため IP1 における範囲(256 ) 。6 ため IP2 における範囲(256 ): 7 ため IP3 における範囲(256 ): 8 ip_str_format = " %のS 。%S.%のS.%S "%(STR(ip_start)、STR(IP1)、STR(IP2)、STR(IP3)) 。9 収率ip_str_format 10 リターン " に行わITER IS " #スローの値場合イテレータがここに戻っが異常である 。11 12は #関数それは変数に割り当てられたコール、変数はこの時点である発電機 13である str_ip_gen = str_ip(66 ) 14 #データを取得するために発電機を次の方法を使用して、 15 のために I にレンジ(30 ): 16 プリント(str_ip_gen __next__ () ) 。17 18である #次のコードは、並列演算結果収率を達成するために、外部から渡されたイテレータ値の送信方法を使用する 。19 DEF 消費者(名): 20である 印刷(「パンの製造」) 21は、 つつ:真 22は #変数は外部発電機の伝統的な値の効果を達成するために、得直接割り当てられる 23れる 包子= 収率 24 プリント(「%S%Sパンを食べる」%(名前、包子)) 25 26であり、 #は生産者が消費者にデータを渡すための送信方法を生成するために使用され、プロデューサを定義する 27 DEFのプロデューサー() 28 #2の発電機の構成 29 CON1 =消費者(「XXX 」) 30 CON2 =を消費者(" YYY " ) 31 #次回を呼び出し、第1発電機ことは、次に、次の呼び出しデータ準備、位置を得るようになっ 32 CON1。__Next__ () 33である CON2。__Next__ () 34は、 #バン得サイクル 35 のために J で [ 「チャイブ」、「キノコ」、「豆腐」]: 36 #sendメソッドを呼び出すことは、本明細書ジェネレータ収率の値を渡し、下方反復を生成します。 37 [ con1.send(J) 38がある con2.send(J) 39 プロデューサー() 40 41である #イテレータ 42 #1セットタイプ:それは次のサイクルのために有用であり得るタプル列辞書2のセットと、発電機等;でisinstance()を解析用い、繰り返しオブジェクトができ、ループを開くために使用することができる 43は 印刷を(でisinstance ({}、反復可能)) #trueは、そのような条件が満たさ反復可能である 44 #は次のメソッドが呼び出されると呼ばれることができ、オブジェクトは次の文イテレータによって決定されているかどうかを返すイテレータは、次の値を続けます。発電機マストイテレータイテレータ定義満たす 45 プリント()でisinstance({}、イテレータ)を #の偽 46は、 #辞書をリストイテレート可能オブジェクトであるが、ITERの方法を用いてイテレータ反復に反復対象とされるわけではありません 47 プリント(でisinstance(ITER({})、反復子)) #真 48 49 「」 " 50 辞書がイテレータ反復可能ではないことをリストなぜ?Pythonはイテレータオブジェクトが1件のデータがイテレータオブジェクト次をストリーミング表しますデータ・ストリーム内の次の値を取得するための方法; 51 。データストリームは、セットを注文したとして呼び出すとStopIterationスローはデータの誤りがなくなるまでは見ることができますが、その長さを事前に予測することはできません、あなただけの次のメソッドを介してダウンして行くことができます。 52の イテレータは不活性であり、唯一のコールがステップ後方を取るし、それは無限のデータを表すことができ、および辞書のリストおよび他の非反復子は、すべての正の整数として、無限のコンテンツ、表現できない 53 「」 "