Python中装饰器的使用

简单装饰器

# simple decorator
def log1(func):
    def wrapper(*args, **kwargs):
        print("logging decorator is running, target is %s" % func.__name__)
        func()
        print("logging decorator is exiting, target is %s" %func.__name__)
    return wrapper


@log1
def test():
    print(time.ctime(time.time()))


if __name__ == "__main__":
    test()

这里输出结果如下:

logging decorator is running, target is test
Mon Nov 12 22:48:46 2018
logging decorator is exiting, target is test

而这里的话,我们去理解到底发生了什么可以用代码去考量,我们使用了装饰器的语法糖,@log1实际上相当于

test = log1(test)

带参数的装饰器

类装饰器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 装饰器在不改变函数的原有代码的前提下给函数添加新的功能,是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如...
    梦里才是真阅读 479评论 0 1
  • 本文为《爬着学Python》系列第四篇文章。从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新。 在Pytho...
    SyPy阅读 2,522评论 4 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,049评论 19 139
  • 请勿回复
    jbtm阅读 100评论 0 0
  • 2018-7-11中午 忽然觉得自己是个滥情的人,忽然觉得自己好坏,我觉得你昨天说的对,我不一定要在北京待一辈子的...
    朝夕不相处阅读 126评论 0 0