裝飾器、叠代器、生成器
阿新 • • 發佈:2017-09-07
view display code 並且 index closed close 生成 hide
1 def outer(func): 2 #func =原來f1函數 3 def inner(): 4 print(‘hio‘) 5 print(‘hio‘) 6 print(‘hio‘) 7 print(‘hio‘) 8 r=func() 9 print(‘1234214o‘) 10 print(‘1234214o‘) 11 print(‘1234214o‘) 12 print(‘1234214o‘) 13 14return r 15 return inner 16 17 @outer 18 def f1(): 19 print(‘123‘) 20 21 22 #執行outer函數,並且將下面的函數名單做參數 23 #將outer 的返回值重新給f1=outer 的返回值 24 新f1函數=inner
裝飾器再函數執行前後做修飾
=============================================================
裝飾器簡單調用
def outer(func): return ‘LH‘ @outerView Codedef index(): return True >>> print(index) #index變成了一個字符串
裝飾器返回函數名
1 def outer(func): 2 3 def inner(): 4 print(‘123‘) 5 ret=func() 6 print(‘234‘) 7 return ret 8 return inner 9 10 11 @outer 12 def index(): 13 print(‘feichangfuzahn最簡單裝飾器‘) 14 return True 15 16 >>> index() 17 123 18 feichangfuzahn 19 234
只要裝飾器被應用,那麽函數就會被重新定義,定義為裝飾器的內層函數。
裝飾器含N個參數的函數
1 def outer(func): 2 def inner(*arg,**kwargs): 3 print(‘123‘) 4 r=func(*arg,**kwargs) 5 print(‘457‘) 6 return r 7 return inner 8 @outer 9 def index(x1,x2): 10 print(x1+x2) 11 return x1+x2
裝飾器、叠代器、生成器