python中在函数中定义函数有什么好处?

2023-12-26

我遇到了这段python代码(粘贴在下面)effbot http://effbot.org/zone/re-sub.htm#unescape-html我想知道:

为什么要在函数中定义函数?

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)

为什么要在函数中定义函数?

使其保持隔离。只用在这一个地方。当它在本地使用时,为什么要更全局地定义它?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中在函数中定义函数有什么好处? 的相关文章

随机推荐

  • 模拟类型转换对象

    我的 bean 中有一个简单的方法来处理 primefaces 数据表中的单元格编辑事件 方法如下 public void onCellEdit CellEditEvent event Object oldValue event getOl
  • Linq to SQL / 过滤重复项

    我的 sql server 2012 中有一个视图 其中有几个重复项 我想按最新的对它们进行排序并过滤所有其他的 谁能帮助我 我对 SQL Server 2012 的看法 GUID 作为主键 数字 日期时间和名称 guid number d
  • 在 IISExpress 中获取 ASP.Net Core 关闭触发 ApplicationStopping 事件

    我知道之前有一个关于此问题的问题 还有一个 GitHub 问题 https github com aspnet Hosting issues 846 https github com aspnet Hosting issues 846从 M
  • 对于 genericsetup 导入步骤的名称,是否有一个很好的参考列表

    是否有通用设置导入步骤名称的综合参考列表 通用设置导入步骤的名称并不总是与其相应 xml 文件的名称匹配 例如 types xml 有一个名为 typeinfo 的导入步骤 如果没有列表 我会对一种简单的方法来查找导入步骤的名称感到满意 例
  • 学习 Hibernate 的好书或在线资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • boost::circular_buffer 相当于文件吗?

    我正在寻找一个允许在磁盘上获取循环缓冲区的库 在 Boost 中也有类似的东西 但它是一个基于内存的容器 循环缓冲区 http www boost org doc libs 1 57 0 doc html circular buffer h
  • 在 Linux 下启动时运行 ASP.NET Core 应用程序

    我想在 Linux 下运行我的 ASP NET Core 解决方案 并在启动时运行结果 来自微软docs https learn microsoft com en us aspnet core host and deploy linux n
  • CustomScrollView 内的 TabView

    用 SliverFillRemaining 包裹 TabBarView 像 Expanded 一样填充剩余的空白空间 会产生以下错误输出 flutter RenderPositionedBox 需要 RenderBox 类型的子代 但收到了
  • 编码为 base64 密钥库文件

    我想对我的 keystore 文件进行编码以在 Gitlab ci 中使用 因此 对于 Base64 编码 我运行以下命令 openssl base64 A in myFile keystore 对于解码 openssl base64 d
  • 如何为 TextView 中的文本更改添加动画效果?

    尝试执行以下操作 animTimeChange AnimationUtils loadAnimation this android R anim slide in left itemTime startAnimation animTimeC
  • 在单个剃刀视图中,如何检索从控制器的不同方法传递的值?

    我正在开发一个基本应用程序 这是主控制器 public ActionResult Index var all context mainz ToList var vm new mainViewModel main lst all return
  • 在 Excel 用户窗体中,如何更新标签的标题?

    我创建了我的第一个无模式UserForm在 Excel 中并在其上放置 ActiveX 标签 如何设置标签的标题 以便它显示其中的内容Sheet1 Range A1 并在单元格 A1 中的值发生变化时自行更新 基本上 我想要Userform
  • Haskell 集合可以保证每个操作的最坏情况范围?

    这种结构对于实时应用程序 例如用户界面 是必要的 用户并不关心单击按钮是否需要 0 1 秒或 0 2 秒 但他们确实关心第 100 次单击是否会强制执行出色的惰性计算并需要 10 秒才能继续 我在读冈崎的论文纯函数式数据结构 http ww
  • Python 在打印变量后打印文本

    所以我想在打印变量后打印一些文本 如下所示 print Blablabla var blablabla 现在看起来像这样 print The enemey gets hit for d damage 我想在打印损坏变量后打印 Hitpoin
  • ole32!COIDTable::ThreadCleanup 中崩溃 ... NetworkItemFactory!FDBackgroundThreadHandler

    自上周以来 Word 和 Excel 经常崩溃 即使是非常简单的文档也是如此 刚才 火狐也崩溃了 我该如何修复它或找到真正的根本原因 我已经使用安装程序修复了 Office 安装 应安装所有常规更新 笔记本电脑每天都会重新启动 我已经配置了
  • 在 IIS 上启用 SSI

    根据这一页 http msdn microsoft com en us library ms525940 28v vs 90 29 aspx 我应该能够 问 如何在 IIS7 上启用 SSI 编辑 哦 我明白我的问题是什么了 我在 VPS
  • git-diff:不考虑行顺序

    我的存储库中有一个由软件程序生成的文件 该程序有时会重新排序该文件上的行 这并不重要 因为行顺序并不重要 问题是 当执行 git diff 时 很难看出任何内容是否真正发生了变化 无论如何 是否有执行不考虑行顺序的差异 或者 如果 git
  • 如何在 Swift 中获取父 ViewController 的类名?

    有没有办法获取当前 子 父VC的类名UIViewController 我的 孩子 VC 推 有两个 父母 UIViewControllers 所以我想知道哪一位是当前的父母 这是一种方法 if let parentVC parent as
  • Vector3 的纬度和经度未在 3D 球体上对齐

    我正在尝试将纬度和经度转换为 Vector3 格式 对于给定的纬度和经度 我想将其转换为 Vector3 其中标记对象将位于此 Vector3 位置 这是我的代码 void createLand double latitude rad la
  • python中在函数中定义函数有什么好处?

    我遇到了这段python代码 粘贴在下面 effbot http effbot org zone re sub htm unescape html我想知道 为什么要在函数中定义函数 import re htmlentitydefs Remo