<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 概述 裝飾器本身是一個函數,用于裝飾其他函數和類。 > **函數裝飾器**在函數定義的時候進行名稱重新綁定,提供一個邏輯層來管理函數和方法或隨后對他們調用。 函數裝飾器,增強被裝飾 函數的功能,實現函數在不同環境的復用 。 > **類裝飾器**在類定義的時候進行名稱重新綁定,提供一個邏輯層來管理類或管理隨后調用它們所創建的實例。 ### 應用 有切面需求的插入日志,性能測試,事務處理 ### 舉例 ```python def deco(func): def wrapper(x): print "Say >>>." func(x) print "end..." return wrapper @deco def show(x): print x ``` ```python show('hiyang') Say >> >. hiyang end... ``` 圖示說明 ![](http://qiniu.echosoul.cn/17-9-1/67538842.jpg) * 不帶參數,不帶返回值 ![](http://qiniu.echosoul.cn/dec.gif) * 帶參數,不帶返回值 ![](http://qiniu.echosoul.cn/dec2.gif) * 帶參數,帶返回值 ![](http://qiniu.echosoul.cn/dec3.gif) ## 帶參數的裝飾器 ~~~python # 進化前 def tips(func): def process(a, b): print("calculate start...") func(a, b) print("calculate stop...") return process @tips def add(a, b): print(a+b) @tips def sub(a, b): print(a-b) add(1, 2) sub(1, 2) ~~~ ~~~ python # 進化后 def enhance_tips(method): def tips(func): def process(a, b): print("calculate %s start..." % method) func(a, b) print("calculate %s stop..." % method) return process return tips @enhance_tips("add") def add(a, b): print(a+b) @enhance_tips("sub") def sub(a, b): print(a-b) add(1, 2) sub(1, 2) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看