python裝飾器(2)
阿新 • • 發佈:2017-09-02
裝飾器 () 方式 cti 調用 st2 rgs 顯示 clas
1.以下代碼,bar作為參數被test2調用。bar的原代碼沒變,但調用方式從bar()變成test2(bar) 不符合裝飾器定義
1 __author__ = "csy" 2 3 def bar(): 4 print("in the bar") 5 6 def test2(func): 7 print(func) 8 func() 9 10 test2(bar)
輸出:
<function bar at 0x00000000006BFE18>
in the bar
2.以下代碼bar的原代碼沒變,調用方式仍為bar(),符合裝飾器定義
1 __author__= "csy" 2 3 def test2(func): 4 def warpper(*args,**kwargs): 5 print(func) 6 func() 7 return warpper 8 9 @test2 10 def bar(): 11 print("in the bar1") 12 13 bar()
輸出:
<function bar at 0x0000000000A4FEA0>
in the bar1
如果去掉 第9行 @test2,則只會顯示
in the bar1
證明裝飾器功能已實現
python裝飾器(2)