ソフトウェアテストドライシェアのソース時代| Pythonの自動テストの一般的な面接の質問、良い仕事を見つけることを学ぶことを恐れていません!

デコレータを理解するためにどのように、デコレータを使用するか、書いたものを?

1.1概要:
デコレータは基本的にPythonの関数である、それはデコレータの戻り値は関数オブジェクトで、他の機能は、任意のコードの変更の前提の下で、追加機能を追加する必要はありませんことができます。

1.2説明:

1.importロギング  RET = oldfunc 8(*引数、** kwargsから)  
9.リターンRET  
10.  
11.新しい関数の戻り  
12リターンnew_func  
13  
14  
15糖衣構文位デコレータ介して  
16 @デコレータ  
BR /> 2。 #デコレータを定義し、古い機能の受け取り  
:3.defデコレータが(oldfunc)  
4.元の機能強化のための新しい関数を定義  
5. DEFのnew_func(* argsを、** kwargsから):  
ログ情報を、ここに書かれた6強化コードを.. ..  
(「ログ情報」)logging.error 7  
8 RET = oldfunc(*引数、** kwargsから)  
リターンRET 9.  
10.  
新しい関数の戻り11  
戻りnew_func 12  
13  
A 14  
#を介して15 Aシンタックスシュガーデコレータ  
16 @デコレータ  
17.def広場(X):  
18. 2乗番号が取得  
X ** 2リターン19 A  
20 A  
21位実行  
22.print(正方形(5))  

1.3アプリケーションのシナリオ:
ロギング、コード実行時間の統計、検証する権限
の違い2.イテレータとジェネレータ
2.1の概要:
Builderは特別なイテレータで、それはよりエレガントなビルダーの要素が直接うまく生成できません。しかし、それぞれが、それはこのようにメモリ空間を節約し、作成されたときに次の要素を取得するために、次の()メソッドを使用します。イテレータと発電機との違い
2.2説明:。
それは次のクラスの場合1.イテレータは、より抽象的な概念である、任意のオブジェクトは、独自のメソッドを持っており、この方法は、ITERを返します。等コンテナオブジェクト列、リスト、辞書、タプル、このタイプのため、それは便利であるループ反復のために使用しました。声明の背景は、()関数で、ITERを呼び出すには、コンテナオブジェクトのITER()はPythonの組み込み関数です。ITER()は個別のコンテナ内のコンテナ要素内でアクセスイテレータオブジェクトの定義された次の()メソッドを返し、構築された次の()関数は、Pythonです。後続の要素が存在しない場合には、次の()StopIterrationの例外をスローします。
2.ジェネレーター(発電機)はイテレータを作成するためのシンプルかつ強力なツールです。それはリストジェネレータと、関数発生器は、ファンクション・ジェネレータは、通常の関数のように書かれていますが、戻りデータの時の歩留まりのreturn文を使用する必要があります。()次が呼び出されるたびに、(それが最後のステートメントを実行し、すべてのデータ値を記憶位置)に復帰位置を生成するであろうから
2.3シナリオ:

1.#リスト生成、実際には、誘導された式のリスト[]が書き込まれる()  
(I(10)のためのI範囲内)2.g =  
3.Print(次へ(G))  
4.print(次へ(G))  
5.Print(次へ(G))  
6.print(次へ(G))  
7.  
8.  
9.デジタル関数発生器正方形型で取得された#1-10  
10.defのSQRT():  
11 NUM 1 =  
12であります。一方NUM <=は、10:  
13の戻り正方形  
14 A ** 2収率NUM  
。15 A NUM = + 1  
16 A  
17、呼び出し元の関数発生器に戻る  
18. A G = SQRT()  
19.プリント(次へ(G))  
20であります。印刷(次へ(G))  
21プリント(次へ(G))  
22プリント(次へ(G))  

(この記事は、元のソース時代の技術の教師によって書かれた、ソースを明記してください)

おすすめ

転載: blog.51cto.com/14497209/2437517