python基础之装饰器

python基础之装饰器,第1张

概述装饰器是什么?装饰器的实质是函数,其作用是为被装饰的函数,在不改其功能的前提下,为其进行功能的拓展。 一、不带参数的装饰器:deffunc(inner_func):a=100print("thisisfunc")defwrapper(*args,**kwargs):print("thisisinner_func")pr

装饰器是什么?
装饰器的实质是函数,其作用是为被装饰的函数,在不改其功能的前提下,为其进行功能的拓展。

 

一、不带参数的装饰器:

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基础之装饰器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存