
Python
装饰器就像是创建了一个外壳,函数会在这个外壳里被执行。例如有个函数func(a = 1),这是常规的执行形式。而装饰器是预先设定好的。假如我想要一个输出相加结果的函数,正常可能是func(add(a = 1, b = 1)),写成装饰器的形式就是:@funcdef add(a, b): pass这样的话,如果需要做些修改,直接在装饰器上操作就可以了。不过由于引用关系,装饰器必须定义在函数之前,所以想通过修改装饰器来修改函数是不行的。如果想扩展知识的话,可以学习闭包。我用到的例子包括:计算函数执行时间,只需在想要计算的函数上调用计算执行时间的装饰器就行;在Windows回调函数的
Python实现中,用装饰器来写会很简洁美观;还有给类写单例模式。函数装饰器和类装饰器能够装饰函数和类。函数装饰器的实现基于闭包,类装饰器好像有所不同,我还没有了解过。