大小: 1115
說明:
|
大小: 1201
說明: restructure
|
這個顏色代表刪除的 | 這個顏色代表增加的 |
行號 1: | 行號 1: |
## page was renamed from decorator | |
行號 3: | 行號 4: |
{{{ | {{{#!python |
行號 9: | 行號 10: |
{{{ | {{{#!python |
行號 15: | 行號 16: |
check_div_zero 是一個 function 或者任何 callable,接受另一個 callable 為參數,並傳回另一個 callable。這樣做的目的,是為了提供一些包裝的功能,將一些功能加到原本的 callable 上面。例如上例,就可以裝除零的檢查加上去。 | check_div_zero 是一個 function 或者任何 callable,接受另一個 callable 為參數,並傳回另一個 callable。這樣做的目的,是為了提供一些包裝的功能,將一些功能加到原本的 callable 上面。例如上例,就可以將除零的檢查加上去。 |
行號 17: | 行號 18: |
{{{ | {{{#!python |
行號 28: | 行號 29: |
---- CategoryCookbook |
decorator
Python 能以 decorator 包裝其它的 function 、method 、或 lambda 等,任何 callable object 。嚴格來說, decorator 並不是什麼偉大的發明,它只是讓我們少打幾個字來完成特定的工作。例如:
這段 code ,其實等於
check_div_zero 是一個 function 或者任何 callable,接受另一個 callable 為參數,並傳回另一個 callable。這樣做的目的,是為了提供一些包裝的功能,將一些功能加到原本的 callable 上面。例如上例,就可以將除零的檢查加上去。
這就是一個簡單的 decorator。 Programmer 可以將一些大量使用到的檢查;例如:權限檢查,寫成 decorator 並 wrap 在需要的 method 或 function 上。如此能大量的減少 code 的重複,也更簡單易懂。