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

2018-04-30  本文已影响13人  MarcoHorse

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

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的时候,就可以直接返回新的值了

上一篇下一篇

猜你喜欢

热点阅读