Python decorator * 代码实例解析
作者:西城老李 时间:2022-04-07 11:03:47
这个decorator是什么意思呢?
很简单,它接受一个log的参数,即传入logger对象。然后它会先把函数名打印出来,接下来,会利用enumerate函数,将args、kwargs的任意参数给展开,并按顺序输出。最后,它再将func以这些参数包装回去,继续进行函数的执行和结果返回。
例1 最简单
def get_text(name):
return "hello, {0}".format(name)
def p_decorate(func):
def func_wrapper(name):
return "<p>{0}</p>".format(func(name))
return func_wrapper
my_get_text = p_decorate(get_text)
print(my_get_text("zhangsan"))
例2 参数通用化
def p_decorate(func):
def func_wrapper(*args, **kwargs):
return "<p>{0}</p>".format(func(*args, **kwargs))
return func_wrapper
class Person(object):
def __init__(self):
self.name = "Neng"
self.family = "Xiong"
@p_decorate
def get_fullname(self):
return self.name+" "+self.family
my_person = Person()
print(my_person.get_fullname())
例3 根据参数,实现动态 *
def tags(tag_name):
def tags_decorator(func):
def func_wrapper(*args, **kargs):
return "<{0}>{1}</{0}>".format(tag_name, func(*args, **kargs))
return func_wrapper
return tags_decorator
@tags("div")
@tags("p")
@tags("strong")
def get_text(name):
return "hello, "+name
print(get_text("zhangsan"))
来源:https://www.cnblogs.com/lxgbky/p/12627092.html
标签:Python,decorator, ,
0
投稿
猜你喜欢
Python Merge函数原理及用法解析
2021-10-02 00:16:11
Python超详细讲解内存管理机制
2022-02-21 23:11:47
深入分析MSSQL数据库中事务隔离级别和锁机制
2024-01-22 02:53:35
Python输出带颜色的字符串实例
2023-08-20 05:28:03
MySQL5.7.21安装与密码图文配置教程
2024-01-14 16:33:10
MySQL数据库监控软件lepus使用问题以及解决办法
2024-01-25 14:59:37
关于换行和回车的图文小结
2023-07-17 14:41:37
用Python登录好友QQ空间点赞的示例代码
2023-08-08 09:29:40
分享6个好用到爆的Pycharm插件
2021-07-07 21:17:59
ES5学习教程之Array对象
2024-04-17 10:09:17
基于opencv和pillow实现人脸识别系统(附demo)
2023-04-06 10:28:53
Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
2024-05-09 14:56:40
Mysql自带profiling性能分析工具使用分享
2024-01-14 17:48:24
vue 踩不完的异步之坑及解决
2024-04-28 09:30:05
Python查找不限层级Json数据中某个key或者value的路径方式
2023-07-08 02:39:43
MYSQL server has gone away解决办法
2010-11-25 17:22:00
nlp计数法应用于PTB数据集示例详解
2023-10-26 17:24:07
MySql数据库捕获sql语句异常的方法
2011-08-05 18:17:28
MySQL编码不一致可能引起的一些问题
2024-01-21 17:26:15
Keras模型转成tensorflow的.pb操作
2023-12-22 13:10:34