轉載: http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.htmlhtml
這是在Python學習小組上介紹的內容,現學現賣、多練習是好的學習方式。編程
第一步:最簡單的函數,準備附加額外功能app
1函數 2學習 3ui 4spa 5.net 6code 7htm 8 |
|
第二步:使用裝飾函數在函數執行前和執行後分別附加額外功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
第三步:使用語法糖@來裝飾函數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
第四步:使用內嵌包裝函數來確保每次新函數都被調用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
第五步:對帶參數的函數進行裝飾
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
第六步:對參數數量不肯定的函數進行裝飾
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
第七步:讓裝飾器帶參數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
第八步:讓裝飾器帶 類 參數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
第九步:裝飾器帶類參數,並分拆公共類到其餘py文件中,同時演示了對一個函數應用多個裝飾器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
下面是參考資料,當初有很多地方沒看明白,真正練習後才明白些:
1. Python裝飾器學習 http://blog.csdn.net/thy38/article/details/4471421
2. Python裝飾器與面向切面編程 http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
3. Python裝飾器的理解 http://apps.hi.baidu.com/share/detail/17572338