#1 試験機能実行時間デコレータ例示的な インポート時間 DEF timing_func(FN): DEF warpper(): スタート = time.time()を FN() #は、着信パラメーターを実行FN STOP = time.time() リターン(STOP - スタート) リターンwarpper @timing_func DEF test_list_append(): LST = [] のための I におけるレンジ(0,100000 ): lst.append(I) @timing_func DEF test_list_compre(): [I について I中範囲(0,100000)] #リストの式 A = test_list_append() C = test_list_compre() プリント(" テスト追記時間リスト:" 、A) プリント(" テストリスト内包時間:" 、C) プリント(" アペンド/ COMPRE:"、ラウンド(/ C、3 )) テストリストアペンド時間: 0.0219423770904541 テストリスト内包時間: 0.007980823516845703 追記 / COMPRE:2.749
2.統計的異常の発生と時間デコレータ
書き込みデコレータ、統計例外を繰り返し、長時間の経験の数を指定したとき。
インポート時間 インポート数学DEF excepter(F): I = 0、T1 = time.time()DEF ラッパー():トライ:F()以外例外:eと非局所II + = 1枚のプリント(F ' {e.args [ 0を] } :{I } ')T2 = time.time()かどう== N:プリント(F ' 費やす時間:{ ラウンド(T2 -T1、2)} 「)リターンラッパー
3定制递减迭代器
#0の時まで、1の正の整数を達成するために、降順に、ループによって、反復子を書く
クラス降順(イテレータ): DEF __init __(自己、N):self.n = Nのself.a = 0 DEF __iter__ (自己):リターン自己DEF __next __(自己):しばらくself.a < self.n:self.n - = 。1つのリターンself.n 昇給を呼び出すとStopIterationのdescend_iter = 降坂(10)印刷(一覧(descend_iter))[ 9、8 、7、6、5、4、3、2、1、0]