擅长:python、mysql、java
<p>这是基于<a href="https://stackoverflow.com/questions/6629876/how-to-make-an-anonymous-function-in-python-without-christening-it/6630179#6630179">Udi's nice answer</a>。</p>
<p>我认为创建匿名函数的难度有点小。你真正想做的是保持相关代码在一起,并使代码整洁。所以我想装饰师可能会为你工作。</p>
<pre><code>import re
# List of pairs (regexp, handler)
handlers = []
def handler_for(regexp):
"""Declare a function as handler for a regular expression."""
def gethandler(f):
handlers.append((re.compile(regexp), f))
return f
return gethandler
@handler_for(r'^<\w+> (.*)')
def handle_message(msg):
print msg
@handler_for(r'^\*{3} (.*)')
def handle_warning(msg):
global num_warnings, num_fatals
num_warnings += 1
if is_fatal(msg):
num_fatals += 1
</code></pre>