注パイソン13-day13

1、イテレータ

限り、それはデータ型の循環を可能として、確か__iter__メソッドを持っています

印刷' __iter__ '   DIR(BOOL)) __iter__を含むか否かを判断します

戻り値は()を実行__iter __用のリストの後イテレータです

= L [1,2,3 ] 
イテレータ = L. __iter__() イテレータ返す
プリント(イテレータ。__next__()) イテレータによって要素の呼び出しリストを
印刷(イテレータ。__next__ ()) 

反復処理可能で反復すること- > __iter__#__iter__それは反復法が利用可能である含んでいる限り[] .__ ITER __()反復子- > __next__#横にイテレータから1の値で

イテレータのコンセプト
イテレータプロトコル- __next__イテレータを備え、内部および__iter__方法

イテレータプロトコルおよびプロトコルの反復は
、すべてのための反復ループであってもよい
内部反復__iter__方法を有することができる
限り、イテレータ繰り返し処理しなければならないようにすることができ
、反復すること.__ ITERの__()メソッドは、イテレータ得るために使用することができる
イテレータを__nextの__()メソッドでの値を得ることができます

2、発電機

キーワードあれば、ジェネレータ関数が含まれているとして、降伏の関数であり
、収率は、共有とリターン機能で書かれてする必要はありません

DEF ジェネレータ():
     印刷(1 収率 #のジェネレータ機能:ジェネレータは戻り値として実行される後 
RET = ジェネレータ()
 プリント(RET)
 プリント(RET __next__())

図3に示すように、モニタファイル入力・リエ(ただし、ビデオが、ノーコードのように、実装されていません)

DEF テイル(ファイル名):
    F =オープン(ファイル名、エンコーディング= ' UTF-8 ' 、一方:真
        ライン = f.readline()
         もしline.strip():
             収量line.strip()

G =尾(' 001 ' のための I におけるG:
     プリント(I)

 

おすすめ

転載: www.cnblogs.com/xiao-le/p/11498769.html