Python-装饰器

以装饰一个函数为例子, 打印出函数的开始执行时间。

常规方式实现:

import time


def printTime(func):
    def wrapper(*args, **kwargs):
        print(time.ctime())
        return func(*args, **kwargs)

    return wrapper


def printHello(name):
    print('Hello', name)


if __name__ == '__main__':
    printhello_plus = printTime(printHello)
    printhello_plus('Sam')

输出:

Tue Nov 27 17:12:10 2018
Hello Sam

装饰器方式实现:

import time


def printTime(func):
    def wrapper(*args, **kwargs):
        print(time.ctime())
        return func(*args, **kwargs)

    return wrapper


@printTime
def printhello(name):
    print('Hello', name)


if __name__ == '__main__':
    printhello('Sam')

输出:

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

推荐阅读更多精彩内容

  • 部分细节自己改了点,也加了点自己例子,基本上属于转载。转载出处:https://my.oschina.net/le...
    洛克黄瓜阅读 6,030评论 0 3
  • 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂...
    TypingQuietly阅读 19,686评论 26 186
  • Python的装饰器的英文名叫Decorator,要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的...
    Spareribs阅读 3,868评论 1 11
  • 原文出处: dzone 译文出处:Wu Cheng(@nullRef) 1. 函数 在python中,函数通过...
    DraculaWong阅读 3,517评论 0 3
  • 青葱岁月,总有一个难以忘记的他…… A大第四十一界学生中有这样一对恋人,在一个学校十二年却不知道彼此的存折,第十三...
    雨朦小姐姐阅读 1,885评论 0 0