<tfoot id='x9yIr'></tfoot>
    <bdo id='x9yIr'></bdo><ul id='x9yIr'></ul>
  • <small id='x9yIr'></small><noframes id='x9yIr'>

  • <i id='x9yIr'><tr id='x9yIr'><dt id='x9yIr'><q id='x9yIr'><span id='x9yIr'><b id='x9yIr'><form id='x9yIr'><ins id='x9yIr'></ins><ul id='x9yIr'></ul><sub id='x9yIr'></sub></form><legend id='x9yIr'></legend><bdo id='x9yIr'><pre id='x9yIr'><center id='x9yIr'></center></pre></bdo></b><th id='x9yIr'></th></span></q></dt></tr></i><div id='x9yIr'><tfoot id='x9yIr'></tfoot><dl id='x9yIr'><fieldset id='x9yIr'></fieldset></dl></div>
  • <legend id='x9yIr'><style id='x9yIr'><dir id='x9yIr'><q id='x9yIr'></q></dir></style></legend>

      1. Python3有条件地装饰?

        Python3 decorating conditionally?(Python3有条件地装饰?)

        • <i id='CxuBQ'><tr id='CxuBQ'><dt id='CxuBQ'><q id='CxuBQ'><span id='CxuBQ'><b id='CxuBQ'><form id='CxuBQ'><ins id='CxuBQ'></ins><ul id='CxuBQ'></ul><sub id='CxuBQ'></sub></form><legend id='CxuBQ'></legend><bdo id='CxuBQ'><pre id='CxuBQ'><center id='CxuBQ'></center></pre></bdo></b><th id='CxuBQ'></th></span></q></dt></tr></i><div id='CxuBQ'><tfoot id='CxuBQ'></tfoot><dl id='CxuBQ'><fieldset id='CxuBQ'></fieldset></dl></div>
        • <legend id='CxuBQ'><style id='CxuBQ'><dir id='CxuBQ'><q id='CxuBQ'></q></dir></style></legend><tfoot id='CxuBQ'></tfoot>

            <small id='CxuBQ'></small><noframes id='CxuBQ'>

            • <bdo id='CxuBQ'></bdo><ul id='CxuBQ'></ul>

                <tbody id='CxuBQ'></tbody>

                1. 本文介绍了Python3有条件地装饰?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  是否可以根据条件装饰函数?

                  Is it possible to decorate a function based on a condition?

                  阿拉:

                  if she.weight() == duck.weight(): 
                      @burn
                  def witch():
                      pass
                  

                  我只是想知道是否可以使用逻辑(当调用 witch 时?)来确定是否用 @burn<装饰 witch/代码>?

                  I'm just wondering if logic could be used (when witch is called?) to figure out whether or not to decorate witch with @burn?

                  如果不是,是否可以在装饰器中创建一个条件以达到相同的效果?(witch 被称为未装饰.)

                  If not, is it possible to create a condition within the decorator to the same effect? (witch being called undecorated.)

                  推荐答案

                  你可以创建一个'有条件'的装饰器:

                  You can create a 'conditionally' decorator:

                  >>> def conditionally(dec, cond):
                      def resdec(f):
                          if not cond:
                              return f
                          return dec(f)
                      return resdec
                  

                  用法示例如下:

                  >>> def burn(f):
                      def blah(*args, **kwargs):
                          print 'hah'
                          return f(*args, **kwargs)
                      return blah
                  
                  >>> @conditionally(burn, True)
                  def witch(): pass
                  >>> witch()
                  hah
                  
                  >>> @conditionally(burn, False)
                  def witch(): pass
                  >>> witch()
                  

                  这篇关于Python3有条件地装饰?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Initialize Multiple Numpy Arrays (Multiple Assignment) - Like MATLAB deal()(初始化多个 Numpy 数组(多重赋值) - 像 MATLAB deal())
                  How to extend Python class init(如何扩展 Python 类初始化)
                  What#39;s the difference between dict() and {}?(dict() 和 {} 有什么区别?)
                  What is a wrapper_descriptor, and why is Foo.__init__() one in this case?(什么是 wrapper_descriptor,为什么 Foo.__init__() 在这种情况下是其中之一?)
                  Initialize list with same bool value(使用相同的布尔值初始化列表)
                  setattr with kwargs, pythonic or not?(setattr 与 kwargs,pythonic 与否?)

                    <tbody id='9Snba'></tbody>
                    <i id='9Snba'><tr id='9Snba'><dt id='9Snba'><q id='9Snba'><span id='9Snba'><b id='9Snba'><form id='9Snba'><ins id='9Snba'></ins><ul id='9Snba'></ul><sub id='9Snba'></sub></form><legend id='9Snba'></legend><bdo id='9Snba'><pre id='9Snba'><center id='9Snba'></center></pre></bdo></b><th id='9Snba'></th></span></q></dt></tr></i><div id='9Snba'><tfoot id='9Snba'></tfoot><dl id='9Snba'><fieldset id='9Snba'></fieldset></dl></div>
                    <tfoot id='9Snba'></tfoot>

                      <small id='9Snba'></small><noframes id='9Snba'>

                        1. <legend id='9Snba'><style id='9Snba'><dir id='9Snba'><q id='9Snba'></q></dir></style></legend>

                          • <bdo id='9Snba'></bdo><ul id='9Snba'></ul>