装饰器是什么?
装饰器的实质是函数,其作用是为被装饰的函数,在不改其功能的前提下,为其进行功能的拓展。
一、不带参数的装饰器:
def func(inner_func): a = 100 print("this is func") def wrapper(*args, **kwargs): print("this is inner_func") print(a) print(args, kwargs) inner_func(*args, **kwargs) return wrapper@funcdef ts(x, y): print("this is ts") print(x, y)ts(3, 4)
执行结果:
this is functhis is inner_func100(3, 4) {}this is ts3 4
我们可以看到,在ts()函数的基础上,实现了功能的拓展。
二、有参数的装饰器
有参数的装饰器,其实就是在无参数的装饰器上多加一层,用于参数传递
def decorator(m, n): def func(inner_func): a = 100 print("this is func") print(m, n) def wrapper(*args, **kwargs): print("this is inner_func") print(a) print(args, kwargs) print(m, n) inner_func(*args, **kwargs) return wrapper return func@decorator(150, 250)def ts(x, y, z=200, q="tom"): print("this is ts") print(x, y, z, q)ts(3, 4, z=999, q="jerry")
执行结果:
this is func150 250this is inner_func100(3, 4) {'z': 999, 'q': 'jerry'}150 250this is ts3 4 999 jerry
总结
以上是内存溢出为你收集整理的python基础之装饰器全部内容,希望文章能够帮你解决python基础之装饰器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)