エッセイを学びます:
簡単な紹介:
機能:機能変数である
ため機能:パラメータに渡された引数として関数名
2.戻り値関数名
内部関数を再度定義関数:ネストされた関数
デコレータ:デコレータをするために、機能です他の機能に機能を追加し
、ソースコードの装飾的な機能を変更するには、原則的に、呼び出される関数を変更しないでインストールされている
高機能ネストされた機能= +デコレータ
は次のようなコードである:
1. 機能を
1つの #機能 2 DEFの FOO(名): #は関数定義 。3 印刷(' このFOO名:' 、名前) 4。 FOO(' FOO ') #の関数fooを呼び出し 5。 foo2は= FOOの #の機能、すなわち変数、FOO引数がfoo2は渡される 。6 foo2は(' foo2は')#1 foo2は呼び出しを、すなわち変調FOO
2. 高階関数
1つの #高次関数 2 3。 DEF 試験(FUNC): 4 START_TIME = time.time() 5。 FUNC() 6。 END_TIME = time.time() 7。 プリント(' 実行時間関数func:'、STR(start_time- END_TIME )) 8。 リターンFUNC 9。 DEF デモ(): 10 印刷(" demo_%Sは、\ nは3秒のスリープを実行する" ) 11。 (3 time.sleep。 ) 12が 印刷が(" 実行のdemo_%のSの終わりを" ) 13は、テスト(デモ) #は、関数の引数に渡され、実行 14デモテスト=(デモ) #のテスト(デモ)機能デモの引数を返し 15デモ()#の実行デモ
3. ネストされた関数
1つの #入れ子関数 2 DEFのDOC(): 3 名= ' ローレン' 4 DEFのDOC1(): 5 名= ' loren1 ' 6。 DEFのDOC2(): 7 名= ' loren2 ' 8。 印刷(' 名' 、名前) 。9 DOC2() 10 DOC1() 。11 DOC()
4. デコレータ
1つの #のデコレータ1 2 3。 DEF 試験(FUNC): 4 DEFの warppr(*引数、** kwargsから) 。5 プリント(' 新機能と機能を追加することができ' ) 6。 プリント(' プリミティブを実行' ) 7。 FUNC(*引数、** kwargsから) 8。 リターンwarppr 9。 DEF デモ(名): 10 印刷(' 実行のdemo_%Sエンド'%の名前) 。11 12は、デモ(' ローレン') #コールデモの本来の機能 13は、デモ=テスト(デモ)#装飾機能のデモ 14デモ(「loren2 」) #のデモ関数を呼び出す後トリム
内蔵Pythonのデコレータ:@
1 #のデコレータ2 2 DEF 試験(FUNC): 3 DEFの warppr(*引数、** kwargsから) 。4 プリント(' 新機能と機能を追加することができ' ) 5。 印刷(' プリミティブを実行' ) 6。 FUNC(*引数、** kwargsから) 7つの。 リターン warppr #の機能warpprのリターンアドレス 8。 @Test #@Test当量=試験デモ(デモ) 9。 DEF デモ(名): 10 プリント(' ランのdemo_%S終了'%の名前) 。11 12でデモ(「ローレン」)#のリアトリム関数呼び出しのデモ