Builderの基礎

まず、需要

  形式から「印刷%sの倍の」%dを印刷する、この時点での印刷が2,000,000となっています。(ダイレクトレンジ(2000000)動けなく、カードを望んでいません)

発電機の第二に、定義

  1.発電機はまた、実際に得られたイテレータ、あなたが大幅にメモリを節約することができ、発電機を書きました。

  2.機能は、歩留まりを使用しています。

  3.yield:有効性とほぼ同じ返しますが、一緒に表示されて動かない場所に滞在するための機能の実行、歩留まりの戻り値の後に、返すことはできません。戻り値は、次の呼び出しは再び来る、停止します。

第三に、例

DEF PrintX():
      I におけるレンジ(2,000,000 ):
         収量 ' X = S%'I 

G = PrintX()
G1 = PrintX()            これは、2つの発電機である
                 #G .__次__():取得
=カウント0 のI におけるG: 印刷(I)        印刷面を調整しながら。データ処理面を生成します。 + = 1つのカウント。IF回数> 50:     いつでもプラスカウント値、次が取り得るBREAKの印刷*** 、G. __next__()) *** X = 51

  場合ここで、G = printx()、実際のリターンデータ生成、下位印刷における一方のみメモリから、範囲(2000000)を作成しません。


第四に、いくつかの機能の紹介:

__iter __():このメソッドはありイテレーションも示しています。

__next __():このメソッドは、一つ一つが取り出すことができる説明します。

__setstate __():あなたが撮影を開始する場所を指定することができます。

__add __():__add__機械翻訳のメソッドを呼び出すために、実際には、追加を使用。

 (直接法の下でダブルはほとんど通常、他の文法のトリガーと、呼び出されません)

 

V.の概要

  1.発生器は、本質的に反復子であります

  2.フォームジェネレータ

    1)生成関数

    2)ジェネレータ式

  3.ジェネレータ関数:ジェネレータ関数は、yieldキーワードを含む関数です。

  4.ジェネレータ関数の機能は:

    1)機能を実行しないと呼ばれる関数は、発電機を返した後。

    2)メソッドを呼び出した後に値を取ること__next__ます。最後のエラーの後まで完了してください。

  いくつかの方法ビルダからの値:

    1)次

DEF ジェネレータ()
     のための I における範囲(20000000 ):
         収率 " 回の印刷の%s "%(I + 1 

G = ジェネレータ()
 プリント(G. __next__())    印刷1

       2)について

DEF ジェネレータ()
     のための I における範囲(20000000 ):
         収率 " 打印第%sの次"I 
        
G = ジェネレータ()
NUM = 0
 のための I におけるG:
    NUM + = 1
     であれば NUM> 50 ブレーク・
    プリント(I)

    3)データ型のキャスト

DEF ジェネレータ()
     のための I における:範囲(20)と    #1 のデータが小さい、
        収率 " 印刷%回のS "%(I + 1 

G = ジェネレータ()
 プリント(リスト(G))         発電機をに変換されリスト、メモリ内のデータ間。(合計メモリ)

 

  

おすすめ

転載: www.cnblogs.com/lowislucifer/p/10993723.html