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,其实有点绕口,多写几遍就理解了!