美文网首页
Python 装饰器

Python 装饰器

作者: enhengz | 来源:发表于2018-01-15 15:31 被阅读8次

    装饰器是方便开发根据产品经理调整代码的过程

    只用语言描述很难理,下面直接看样例代码

    1   def outer(fun):

    3       def wrapper(age):#遇见函数先放在内存

    6              print ("a")

    7              print ("b")

                   fun(age )

    9              print ("最后")

    4      return wrapper

    2 @outer#相当回去执行outer(),并且传入的参数为foo,最终执行的是outer(foo)

     def foo(age):

    8    print ('a',age)

    #在上面执行完之后,相当于重新定义了一个foo函数

    ‘’‘

    foo()=def wrapper(age):   print ("a")   print ("b")   fun(age )   print ("最后")#主要是wrapper的return

    '''

    5 foo("age")

    这部分代码的前面是我打上的程序运行顺序,方便解释和理解

    首先,如果我们现在定义一个函数foo(),print是a,后面产品经理 要求 在加一个print b,我们直接加上就行,但是如果我们不是一个函数,而是成千上百个函数,这样如果我们在一个个加是不是会瞬间爆炸,装饰器就是解决这个爆炸心情的关键

    我们在foo主函数前面定义了一个outer函数,这个函数就是装饰器的关键,而且这个函数是函数套函数,函数的执行方式我们都懂的,但是怎么样使outer函数与foo函数相连呢,这个时候就用到了@outer,这个是装饰器与函数链接的关键,在这个地方@outer就等于outer(foo),通过这样的方式,遇到产品经理要求改的时候我们只要修改 outer里面的函数就行了,这就是装饰器的方便之处

    在执行函数方面,def的函数是先存在内存里面,调用的时候才会执行,同时注意如果需要加参数时,参数添加的位置

    相关文章

      网友评论

          本文标题:Python 装饰器

          本文链接:https://www.haomeiwen.com/subject/qfbfoxtx.html