骚气的Python之装饰器

    xiaoxiao2022-07-13  138

    装饰器是Python的特性,采用了闭包的思想,使用得当可简化代码,提高可读性。

    装饰器的特点是只运行一次,就是说不能动态添加装饰器,只能在需要装饰的方法上手动添加装饰器。

    下面举个简单的例子

    import datetime def logtime(f): def setf(*args, **kw): print(datetime.datetime.now()) return f(*args, **kw) return setf @logtime def f(): print("i am f") f()

    输出:

    2019-05-23 17:03:37.415021 i am f

    上面的例子是一层闭包,下面介绍下两层闭包

    两层闭包就是在闭包再嵌套一个闭包

    import datetime def logtime(time): print(time) def _logtime(f): def setf(*args, **kw): print(datetime.datetime.now()) return f(*args, **kw) return setf return _logtime @logtime("2019年5月23日") def f(): print("i am f") f() f()

    输出:

    2019年5月23日 2019-05-23 17:13:43.106003 i am f 2019-05-23 17:13:43.106223 i am f

     

    最新回复(0)