ファンクション&python-次関数&ネストされた関数&デコレータ

エッセイを学びます:

簡単な紹介:

機能:機能変数である
ため機能:パラメータに渡された引数として関数名
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でデモ(ローレン#のリアトリム関数呼び出しのデモ

 

 

おすすめ

転載: www.cnblogs.com/lorenjia/p/11100201.html