Python装饰器的简单实用方法

python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。 

一般而言,我们要想拓展原来函数代码,最直接的办法就是侵入代码里面修改

下面就来看看吧,不带参数的装饰器

#!/usr/bin/python3
#coding:utf-8

def dec(func):
    def wrapper():
        print("this dec !")
        return func()
    return wrapper

@dec
def func():
    return "merci"

b = func()
print(b)
打印结果
this dec !
merci

带参数的装饰器,可以将参数传递给装饰函数wrapper,然后返回给函数func

#!/usr/bin/python3
#coding:utf-8

def dec(func):
    def wrapper(name):
        print("this dec !")
        return func(name)
    return wrapper

@dec
def func(name):
    return name

b = func("merci")
print(b)

打印结果
this dec !
merci

简单的总结就是定义一个装饰器函数dec,传入被装饰的函数名func,再在定义装饰器函数dec中定义函数wrapper可以选择传递要装饰函数的参数name,并在这个函数wrapper主体中新增你需要添加的新功能新方法等等,然后返回被装饰的函数func,最后就是在装饰器函数中返回这个新定义的函数wrapper,其实有点绕口,多写几遍就理解了!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/579.html