三言两语了解python中的装饰器

在这篇文章中,我们将介绍一下Python中的装饰器。

我们将尝试解决以下问题:

装饰器是什么?

为什么需要它们?

它们什么时候有用?

首先,装饰器是什么?

从我的理解,简单地说:装饰器是将另一个函数作为输入并修改/扩展其功能的函数。

可能有人会好奇,怎么会有以函数为输入的函数?

其实,在Python中,一切都是对象(Classes也是如此),所以我们可以传递一个函数作为参数。

那么把另一个函数作为参数的函数是什么?是高阶函数。

我们来看一个例子,让我们写一个简单的装饰器:

我们做了什么?

我们定义了一个简单的函数并用另一个函数装饰它。

您可能想知道,为什么要引入新功能?为什么不改变实际功能呢?

要回答这个问题,让我们来看另一个问题。

假设您正在使用网站,如果未登录账号,则不需要再继续。

现在,一种方法是对需要检查 “用户是否已登录?”的每个函数,逐个检查和修改这些函数。

问题是这可能是每个函数内部耗时且重复的代码块。

针对这类问题比较好的解决办法就是需要我们使用装饰器,使用装饰器可以达到相反的效果。

如果我们编写一个装饰器并将其插入需要检查用户是否登录的每个函数的顶部,它将使得代码显得简洁而无重复,并且节省开发时间。

这将引导我们回答我们剩下的两个问题为何以及何时需要它们?

大多数时间装饰器用于我们想要以相同方式改变/扩展许多函数的地方。

我在工作中使用过的一个例子是用户登录检查。

你知道其他任何用例吗?请在评论中告诉我们。

END

本公众号原创作品,未经授权禁止转载,特此声明,谢谢合作!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181103A1M0RP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券