Python装饰器

来源:互联网 发布:广电网络资费 编辑:程序博客网 时间:2024/06/16 13:24

装饰器

先分享一些比较好的网站:
- http://python.jobbole.com/82344/
- https://www.zhihu.com/question/31265857
- http://python.jobbole.com/81683/

读者只要花十分钟看上述资料,便可理解常用的装饰器。

Python3.5.4
再分享我自己的装饰器库:

装饰器用于打印算法消耗的时间

def PrintTime(func):    @wraps(func)    def wrappers(*args,**kwargs):        """        Print Time!        :return:func        """        start=time()        func(*args,*kwargs)        end=time()        print("\n****************************************\n%s spent time: %s\n****************************************"%(func.__name__,(end-start)))    return wrappers

使用方法:

@PrintTimedef f(n):    print(n)f(10)

结果:

10****************************************f spent time: 0.0****************************************

装饰器打印函数文档

def Help(func):    @wraps(func)    def wrappers(*args,**kwargs):        print('************************************************************\n%s.__doc__ :%s\n************************************************************'%(func.__name__,func.__doc__))        func(*args,**kwargs)    return wrappers

使用方法:

@PrintHelpdef f(n):    """    Test    :param n:    :return:    """    print(n)f(10)

结果:

****************************************f.__doc__ :    Test    :param n:    :return:****************************************10

同理,读者可以尝试一下写打印参数的装饰器。装饰器用来减少很多无关的重复代码,是一个很好的东西。

如果您看到这篇文章有收获或者有不同的意见,欢迎点赞或者评论。python:190341254丁。
原创粉丝点击