python 装饰器的个人理解

装饰器作用:Python装饰器就是用来修改函数的功能的。怎么理解呢?

修改函数功能当然可以直接在函数里面修改,为什么要引入装饰器?举个例子:现在系统已经上线了,项目经理(天杀的)突然突发奇想,我要明确的知道某些重要功能

函数(大概500个吧)的执行日志,WTK,怎么办???,我要重新修改500个函数,天啊,这么多重复操作,我要做这么多次,一个一个改,当然行。有没有其他简便的

方法呢?当然有,装饰器上场。

当然了,有精力完全可以按照下面的搞法来做:

 

 

Python中引入装饰器,可以大大简化上面的操作,并且可以重复使用

 

import time

#定义装饰器函数(需要把装饰的能容写好,比如打印日志、套循环等操作)
def zsq_timelog(afun):
    def zsq_timelog_warp():
        print('这是调用函数之前需要处理的操作')
        print('调用函数的时间为:'+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
        afun()
        print('这是调用函数之后需要处理的操作')
    return zsq_timelog_warp

@zsq_timelog          #使用@装饰器名来装饰函数
def jacksayhello():
    print('jack hello')
@zsq_timelog
def tomsayhello():
    print('tom hello')
@zsq_timelog
def davidsayhello():
    print('david hello')


if __name__ == '__main__':
    jacksayhello()
    tomsayhello()
    davidsayhello()

 

 

 

posted on 2019-12-04 16:45  SmartTony_07  阅读(168)  评论(0)    收藏  举报

导航