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
  • asp之家 网络编程 m.aspxhome.com