Python修饰器


在《Python类方法和静态方法》中提到了修饰器,修饰器和java中的注解看起来差不多,他到底是什么东西呢?

先看一下一个最简单的修饰器实现:

  1. def R(arg):  
  2.     print("修饰一下")  
  3.     return f  

它看起来就是设计模式中提到的修饰设计模式,在原有的基础上添加自己的修式。 

不过python中的实现是返回了一个函数。这感觉有些闭包的概念,不过还好不是那么的复杂。

我们来个复杂点的:

  1. def R(arg):  
  2.     def m(f)  
  3.         print("修饰一下")  
  4.         return f  
  5.      return m  
具体的使用方法和java的注解是一样的:
  1. @R(a)  
  2. def na():  
  3.        pass  

相关内容