美文网首页
【装饰器】闭包函数的基本体现

【装饰器】闭包函数的基本体现

作者: MarcoHorse | 来源:发表于2018-04-30 16:37 被阅读13次

    首先来说下什么是闭包函数,用一个很简单的例子来体现

    def outer(func):
       x = 1
       def inter():
         print("a")
        return  inter
    
    

    书面上闭包的定义如下,嵌套定义在非全局作用域里面的函数能够记住它在被定义的时候它所处的封闭命名空间。
    上面这段函数中,outer里面返回了一个inter函数,而inter函数里面的属性包含着当前的封闭命名空间,inter就成为outer的闭包函数

    接下来说下装饰器的作用和基本使用方式。
    装饰器,既然是装饰器,可以理解成在原有的方法下,对该方法进行装饰铺垫处理

    def func(a,b):
      return a+b
    

    我们定义了一个求和函数,但是我们现在说要求和,之前对数据进行+1的处理

    def outer(func):
      def inter(a,b):
        return func(a+1,b+1)
      return inter
    

    这样,我们就可以在不改变func函数的前提下,实现对func的方法修改

    python对装饰器提供了一个比较方法的关键字处理,也就是@
    上面的代码可以改为

    @outer
    def func(a,b):
      return a+b
    

    这样的话,当你调用func的时候,就可以直接返回新的值了

    相关文章

      网友评论

          本文标题:【装饰器】闭包函数的基本体现

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