学习python装饰器_初学者学习Python的30天—第13天—装饰器

前文

今天,我们探讨装饰器。在尝试使用Python@classmethod和进行面向对象的编程时,我确实应用了一些装饰器@staticmethod,但是那时我没有详细介绍它们。

装饰器是一种编程模式。装饰器只是伪装的功能。

使用装饰器,可以为功能添加更多功能或对其进行超级充电。

我将尝试以自己清楚的术语来解释它们在幕后的工作方式以及为什么它们会有用。

作为头等公民

函数是Python中的一等公民。从本质上讲,这意味着可以像其他数据类型一样将函数分配给变量,并且可以像其他值一样将它们作为参数传递给函数。

03c7e47bcc630d353a9bf392e0481c0f.png

这种将函数作为值传递的能力对于在Python中创建装饰器至关重要。

高阶函数

在以下情况下,一个函数称为高阶函数:它接受另一个函数作为参数(参数)

它返回另一个函数cf5a5ee7538faa4ec375c62c90dd3d08.png

353891578a80bef41c8db6d348456433.png

定制装饰器

现在使用上述原理,这是自定义装饰器的外观899eeda9aa79dd3ee4ee0d530743bf1a.png

starmaker装饰器功能赋予了外行功能以超能力。基本上,它为该函数添加了一个包装器。现在,可以在任何功能之上添加此装饰器@starmaker

Python解释器会识别@decoratorname并将其实时转换为函数并进行处理。上面的代码与下面的代码块完全相似,没有使用@decorator语法da8c2a0a544d01f39ec6a326fc88bc22.png

当我遇到装饰者时,我最初很困惑。但是,在揭露了他们的基本原理之后,它成为了第二本性,我得以将其添加到我的心理模型中。

装饰器函数还可以接受参数,并且可以根据传递的参数进行自定义。

acd2de56a529f7fbc93f8adb2fdbd538.png

装饰器为何有用?

装饰器是一种重要的编程模式,如果使用得当,可以带来很多好处。它使代码非常可重用,并将添加的功能绑定到功能,从而使代码保持DRY。9be0aa8710639f4e39893cdc96e82670.png

上面认证的装饰器函数仅根据指定的条件调用message_friends函数。这提供了很大的灵活性,并根据用户身份验证的状态执行条件操作。

今天就到这里!

我是不吐不快的编程君

关注我,带你走进编程的世界

有任何不懂问题可以私信我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值