博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的decorator示例
阅读量:6938 次
发布时间:2019-06-27

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

hot3.png

#!-*-coding:utf-8-*-import timeclass MyDecorator(object):    def __init__(self,f):        self.f=f        print("MyDecorator __init__")        #f()    def __call__(self):        print("MyDecorator __call__ before")        self.f()        print("MyDecorator __call__ after ")@MyDecoratordef aFunc():    print("aFunc...")class MyDecoratorWithArguments(object):    def __init__(self,arg1,arg2,arg3):        print('MyDecoratorWithArguments __init__')        self.arg1=arg1        self.arg2=arg2        self.arg3=arg3    def __call__(self,f):        print("Inside __call__ of MyDecoratorWithArguments")        def wrapper(*args):            print("MyDecoratorWithArguments wrapper in")            f(*args)            print("MyDecoratorWithArguments wrapper out")        return wrapper@MyDecoratorWithArguments('hello','world',42)def bFunc(a1,a2,a3,a4):    print("bFunc ",a1,a2,a3,a4)def timecount(f):    print('Inside timecount')    def wrapper():        start=time.clock()        print('timecount wrapper before ')        f()        print('timecount wrapper after')        end=time.clock()        print('Used : '+str(end-start))    return wrapper@timecountdef cFunc():    print('cFunc ...')def timecount_withargs(f):    print('Inside timecount_withargs')    def wrapper(*args):        print('timecount_withargs wrapper before')        f(*args)        print('timecount_withargs wrapper after')    return wrapper@timecount_withargsdef dFunc(arg1,arg2,arg3,arg4):    print('dFunc ',arg1,arg2,arg3,arg4)if __name__=='__main__':    print('*'*30)    aFunc()    print('*'*30)    bFunc('say','hello','test','jack')    print('-'*30)    cFunc()    print('-' * 30)    dFunc('hello','world',['a','b',3,4],43)    print('-' * 30)

 

转载于:https://my.oschina.net/shawnplaying/blog/719826

你可能感兴趣的文章
PHP——explode的应用(获取字符串,拆为下拉列表)
查看>>
【二分图最大匹配】【HDU2063】过山车
查看>>
[Hadoop][Zookeeper]Cluster + HA
查看>>
How do I convert between tuples and lists?
查看>>
2016-11-15试题解题报告
查看>>
f5 2017.09.03故障
查看>>
【前端】JSON.stringfy 和 JSON.parse(待续)
查看>>
Emmet用法
查看>>
Excel最多可存多少行,多少列?
查看>>
几何画板表现两集合的差集的教程
查看>>
Jmeter JDBC执行多条SQL
查看>>
iOS开发网络篇—多线程断点下载
查看>>
Beginning IOS 7 Development Exploring the IOS SDK - Handling Basic Interface Fun
查看>>
Java编程基础-运算符
查看>>
CSS3背景线性渐变
查看>>
C++基础——类继承
查看>>
转:不是技术牛人,如何拿到国内IT巨头的Offer
查看>>
Cocoapods安装使用
查看>>
wine 安装.netframework 2.0方法
查看>>
ArcEngine读取数据(数据访问)-转载
查看>>