大小: 1334
說明:
|
← 2009-04-01 04:14:21 修訂第 10 版 ⇥
大小: 1468
說明: converted to 1.6 markup
|
這個顏色代表刪除的 | 這個顏色代表增加的 |
行號 8: | 行號 8: |
Python 的 decorator 可以用來包裝其它的 function、method 與 lambda 等任何的 callable 物件。嚴格來說,decorator 並不是算是新發明,只是可以幫我們'''節省許多打字工作''',以及讓程式碼'''更好看'''。例如: | Python 的 decorator 可以用來包裝其它的 function、method 與 lambda 等任何的 callable 物件。嚴格來說,decorator 並不是算是新發明,只是可以幫我們'''節省許多打字工作''',以及讓程式碼'''更好看'''。 Python decorator 的語法如下: |
行號 16: | 行號 18: |
這段 code,其實等於 | 完全等效於: |
行號 24: | 行號 26: |
check_div_zero 是一個 function 或者任何 callable,接受另一個 callable 為參數,並傳回另一個 callable。這樣做的目的,是為了提供一些包裝的功能,將一些功能加到原本的 callable 上面。例如上例,就可以將除零的檢查加上去。 | check_div_zero 是一個 function 或者任何 callable,接受一個 callable 作為參數,並傳回另一個 callable。這樣做是為了包裝;將一些功能加到原本的 callable 上面。在上例中便是加入除以零的檢查動作 (check_div_zero): |
行號 38: | 行號 40: |
可別把這「省打字功夫」看小了,可大大有用呢: [[http://wiki.python.org/moin/PythonDecoratorLibrary]]; |
- 題目:Python decorator
- 初版貢獻者:
- 其它貢獻者:
- 日期:
Python 的 decorator 可以用來包裝其它的 function、method 與 lambda 等任何的 callable 物件。嚴格來說,decorator 並不是算是新發明,只是可以幫我們節省許多打字工作,以及讓程式碼更好看。
Python decorator 的語法如下:
完全等效於:
check_div_zero 是一個 function 或者任何 callable,接受一個 callable 作為參數,並傳回另一個 callable。這樣做是為了包裝;將一些功能加到原本的 callable 上面。在上例中便是加入除以零的檢查動作 (check_div_zero):
這就是一個簡單的 decorator。程式員可以把一些會大量使用的檢查動作 (例如權限) 寫成 decorator,再包覆到會執行動作的 method 或 function 上。這可以節省大量的重覆程式碼,同時讓程式更加簡單易懂。
可別把這「省打字功夫」看小了,可大大有用呢:
http://wiki.python.org/moin/PythonDecoratorLibrary;