擅长:python、mysql、java
<p>这是函数包装的一个例子,当你有一个函数接受一个函数作为参数,并返回一个新函数来修改原始函数的行为。在</p>
<p>下面是一个如何使用的示例,这是一个简单的包装器,它只在每次调用时打印“Enter”和“Exit”:</p>
<pre><code>def wrapper(func):
def wrapped():
print 'Enter'
result = func()
print 'Exit'
return result
return wrapped
</code></pre>
<p>下面是一个如何使用的示例:</p>
^{pr2}$
<p>为了方便起见,Python提供了<a href="http://docs.python.org/glossary.html#term-decorator" rel="nofollow">decorator syntax</a>,它只是函数包装的一个速记版本,它在函数定义时执行相同的操作,下面是如何使用它:</p>
<pre><code>>>> @wrapper
... def say_hello():
... print 'Hello'
...
>>> say_hello()
Enter
Hello
Exit
</code></pre>