博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python装饰器
阅读量:5847 次
发布时间:2019-06-18

本文共 738 字,大约阅读时间需要 2 分钟。

装饰器:不修改源码的前提下为函数增加功能

# 函数式不带参数装饰器

def Closepkg(func):

  def wrapper(*args,**kwargs):

    print(time.time())

    # 添加打印时间

    func(*args,**kwargs)

  return wrapper

# 函数式,带参数装饰器

def zhuang(value):

  def zhuang1(func):

    def wrapper(*args,**kwargs):

      print(value)

      func(*args,**kwargs)

    return wrapper

  return zhuang1

#类式不带参数装饰器

class zhuang(object):

         def __init__(self,func):

                self.func = func

         def __call__(self,*args,**kwargs):

                 print(time.time())

                 return self.func(*args,**kwargs)

# 类式带参数装饰器

class Zhuang(object):

          def __init__(self,value):

                self.value=value

          def __call__(self,func):

                def wrapper(*args,**kwargs)

                       print(value)

                       func(*args,**kwargs)

                 return wrapper

ps:有错误之处,望不吝指教

 

转载于:https://www.cnblogs.com/jum-bolg/p/10789915.html

你可能感兴趣的文章
HDU 2289 Cup (二分)
查看>>
C#中使用Monitor类、Lock和Mutex类来同步多线程的执行
查看>>
[翻译] 使用CSS进行文字旋转
查看>>
读取本地已有的.db数据库
查看>>
C#发现之旅第十一讲 使用反射和特性构造自己的ORM框架
查看>>
使用GHOST对Windows操作系统进行备份和还原
查看>>
KMeans (K均值)算法讲解及实现
查看>>
为什么不应该使用Zookeeper做服务发现?(转载)
查看>>
《JavaScript核心概念及实践》——2.2 变量
查看>>
关于java 1.8的Lambda表达式详解
查看>>
各个网站的CSS清除代码
查看>>
TableView的集合
查看>>
软RAID管理命令mdadm详解
查看>>
控制器 控制器view cell的关系
查看>>
Eclipse RCP 玩转 Spring
查看>>
我的友情链接
查看>>
Nginx的健康检查机制
查看>>
Nginx介绍及企业web服务软件选择
查看>>
计算机书籍备忘
查看>>
esxi虚拟机中系统克隆及迁移的方法
查看>>