擅长:python、mysql、java
<p>仅举一个在类方法上使用装饰器的示例:</p>
<pre><code>from functools import wraps
def VALIDATE(dec):
@wraps(dec)
def _apply_validation(self, name):
self.validate(name)
return dec(self, name)
return _apply_validation
class A:
def validate(self, name):
if name != "aamir":
raise Exception, 'Invalid name "%s"' % name
class B(A):
@VALIDATE
def name_validation(self, name):
return name
b = B()
b.name_validation('jacob') # should raise exception
</code></pre>