前文
今天,我们探讨装饰器。在尝试使用Python@classmethod和进行面向对象的编程时,我确实应用了一些装饰器@staticmethod,但是那时我没有详细介绍它们。
装饰器是一种编程模式。装饰器只是伪装的功能。
使用装饰器,可以为功能添加更多功能或对其进行超级充电。
我将尝试以自己清楚的术语来解释它们在幕后的工作方式以及为什么它们会有用。
作为头等公民
函数是Python中的一等公民。从本质上讲,这意味着可以像其他数据类型一样将函数分配给变量,并且可以像其他值一样将它们作为参数传递给函数。
这种将函数作为值传递的能力对于在Python中创建装饰器至关重要。
高阶函数
在以下情况下,一个函数称为高阶函数:它接受另一个函数作为参数(参数)
它返回另一个函数
定制装饰器
现在使用上述原理,这是自定义装饰器的外观
starmaker装饰器功能赋予了外行功能以超能力。基本上,它为该函数添加了一个包装器。现在,可以在任何功能之上添加此装饰器@starmaker
Python解释器会识别@decoratorname并将其实时转换为函数并进行处理。上面的代码与下面的代码块完全相似,没有使用@decorator语法
当我遇到装饰者时,我最初很困惑。但是,在揭露了他们的基本原理之后,它成为了第二本性,我得以将其添加到我的心理模型中。
装饰器函数还可以接受参数,并且可以根据传递的参数进行自定义。
装饰器为何有用?
装饰器是一种重要的编程模式,如果使用得当,可以带来很多好处。它使代码非常可重用,并将添加的功能绑定到功能,从而使代码保持DRY。
上面认证的装饰器函数仅根据指定的条件调用message_friends函数。这提供了很大的灵活性,并根据用户身份验证的状态执行条件操作。
今天就到这里!
我是不吐不快的编程君
关注我,带你走进编程的世界
有任何不懂问题可以私信我