首页  >  文章  >  后端开发  >  你能在 Python 中猴子修补核心类型吗?

你能在 Python 中猴子修补核心类型吗?

Susan Sarandon
Susan Sarandon原创
2024-11-02 09:47:02439浏览

Can You Monkey Patch Core Types in Python?

你能修改 Python 中的核心类型吗?

Python 爱好者可能熟悉 Ruby 扩展 Number 类和其他类的有趣功能。基本类型。此功能允许添加多种方法,开辟了迷人的可能性。然而,一个紧迫的问题出现了:Python 可以复制这种行为吗?

不可变的基础

令 Python 爱好者沮丧的是,猴子修补核心类型仍然是一个未实现的梦想。与 Ruby 不同,Python 的基本数据结构驻留在 C 扩展模块中,具有坚定的不变性。这种无敌源于这样一个事实:这些 C 模块在支持单个进程中的多个解释器方面发挥着至关重要的作用。允许更改会造成严重破坏,可能会损害共享同一模块的不相关解释器的完整性。

本地化猴子修补

虽然核心类型仍然不可触及,但 Python 提供了一线希望Python 代码库中定义的类的希望。与不可变的对应类不同,这些本地类可以随着猴子补丁的节奏起舞。这种区别源于它们被限制在本地解释器中,确保它们的修改保持隔离。

划分的原因

核心类型和 Python 定义的类之间的差异源于它们不同的性质。核心类型包含在 C 模块中,由多个解释器共享。无节制的猴子修补有可能给这个共享领域带来混乱。另一方面,Python 定义的类在各自的解释器中相对隔离,允许在不破坏集体的情况下进行恶作剧的更改。

以上是你能在 Python 中猴子修补核心类型吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn