1.  
  2. 主页
  3.  / 
  4. Python基础到高级
  5.  / 
  6. 装饰器
  7.  / 
  8. 定义

定义

高阶函数的定义

返回函数或者参数是函数的函数,就是高阶函数

在Python中函数是一等对象(first class),因为函数也是对象,并且它可以像普通对象一样赋值,作为参数,作为返回值。

高阶函数的应用场景

将匿名函数lambda当做参数来传递,会大大减少代码量,提升代码运行速度,清晰代码的阅读

使用函数作为参数,并且返回值也是函数的场景,也叫做装饰器

函数作为返回值:通常是用在闭包的时候,需要封装一些变量

函数作为参数:通常用于大多数逻辑固定,少部分逻辑不固定的场景

函数作为参数,返回值也是函数:通常用于作为参数函数执行前后需要一些额外的操作

装饰器

参数是一个函数,返回值是一个函数的函数,就可以作为装饰器

只有使用 @ 形式的函数才是一个装饰器

使用 functools.wraps 函数来完善使用装饰器带来的副作用

当使用装饰器后,被装饰的函数的 __name__和__doc__方法都是变成装饰器中的二级函数

在有些时候是需要调用到函数本身的名称的, 因此使用 functools.wraps 将被装饰的函数变回原来的样子

functools.wraps 装饰器的原型

带参数的装饰器

带参数的装饰器: 一个函数,返回一个不带参数的装饰器,那么这个函数就是一个带参数的装饰器

通俗点来说,就是在装饰器外面包裹一个函数,也可以说是,一个带参数的函数封装了一个装饰器,就变成了一个带参数的装饰器

装饰器最多是两层嵌套

lambda和装饰器结合使用,直接修改上面的装饰器

操作函数的方法

给自定义的对象添加帮助信息

使用 doc 也是看帮助信息

使用 name 获取对象名称

使用 dir 获取对象所有的方法

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

邮箱地址不会被公开。 必填项已用*标注