python @修饰符,这篇文章写得明明白白的

python @修饰符的作用是什么?裤子可以用来隐藏羞耻,但是在冬天它不能保护我们免受风和寒冷。聪明人发明了裤子。穿上裤子后,宝宝就不再冷了。装饰装置,像我们这里所说的裤子,在不影响内裤功能的情况下为我们的身体提供温暖

装饰器本质上是一个Python函数,它允许其他函数在不改变任何代码的情况下添加额外的函数。装饰器的返回值也是一个函数对象。它通常用在有不相关需求的场景中,如插入日志、性能测试、事务处理、缓存、权限检查等。装潢师是解决这类问题的绝佳设计。使用decorator,我们可以隔离大量与函数本身无关的相同代码,并持续重用它们。总之,装饰者的角色是向现有对象添加附加功能。

这里我就给大家写个明白,在Python的函数(function)中偶尔(jing chang)会看到函数定义的上一行有@functionName的修饰,当解释器读到@这样的修饰符的时候会优先解除@后的内容,直接就把@的下一行的函数或者类作为@后边函数的参数,然后将返回值赋给下一个修饰的函数对象。

要了解python中@装饰器的作用,首先要记住这么几点:

1. 装饰器符号“@”属于语法糖,什么意思呢?就是说,我不按照@装饰器的语法要求来写,而是按照一般python的语法要求来写完全可以。那么用@装饰器的格式来写的目的就是为了书写简单方便

2. 装饰器的作用是什么呢? 简单的理解就是:装饰原有的函数。什么意思呢?比如有一个函数func(a, b),它的功能是求a,b的差值,我现在有一个需求,就是想对函数功能再装饰下,求完差值后再取绝对值,但是不能在func函数内部实现,这时候就需要装饰器函数了,比如func = decorate(func)函数,将func函数作为参数传递给decorate函数,由decorate来丰富func函数,丰富完成后再返回给func,此时func的功能就丰富了。

3.python的常识,函数和其他任何东西一样,都是对象。这意味着可以将函数当做实参传递给函数,或者在函数中将函数作为返回值返回。例码验证:

###示例代码
def function_1(A):
    print("function_1")
def function_2(B):
    print(B(3))
    print("function_2")
 
 
@function_1
@function_2
def function_name(n):
    print("Hello World ,i am function_name")
    return n+5
...
...
#python会按照自上而下的顺序把各自的函数结果作为下一个函数的输入。
#输出结果:
 
"""
hello world ,i am function_name
8
function_2
function_1
"""

  

我的其他文章:

python调用api接口获取数据,python如何调用api接口(附代码)

为什么用Python,高级的Python是一种高级编程语言

不要再纠结Python哪个版本好,2020年用Python3就对了

小发猫AI标题自动生成神器,人工智能能做的东西有很多

原文地址:https://www.cnblogs.com/phploser/p/12650735.html