私はeffbot上(以下貼り付け)Pythonコードのこの部分が発生し、私は思っていた:Pythonの関数で関数を定義する利点は何ですか?
を関数内で関数を定義するのはなぜ?なぜ、関数内で関数を定義
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "&#":
# character reference
try:
if text[:3] == "&#x":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except ValueError:
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("(?s)<[^>]*>|&#?\w+;", fixup, text)
クロージャを使用するために内部関数を定義するのはかなり一般的ですが、現在のケースは、あなたが言及したものであるようです(それは良い理由もあります)。エルゴ、+1 – brandizzi