0

是否有关于如何在 Python 中实现 Python 的字符串函数的文档?

我知道 str 是一个内置模块,因此它的功能是用 C 实现的。但是无论如何都没有代码吗?在 Pypy 中怎么样?从我目前所读到的内容来看,他们已经在 Python 本身中重新实现了许多内置模块。

例题:字符串的split方法是如何实现的?(没有写我自己的实现)

编辑:我不是在寻找用 C 编写的实现(这是 Python/CPython 源代码中的默认实现)。

4

1 回答 1

5

这并不能真正回答所提出的问题,只是有点太长了,无法发表评论。

对源代码的一些快速挖掘表明,PyPy 有两个实现split()这个高级可读版本这个低级版本,这似乎是split()rpython 本身的实现。

这些实现都不等同于 CPython 的split()方法(最明显的是,它们不处理CPython没有提供的特殊情况sep)。但是,如果您只对所使用的基本算法而不是细节感兴趣,那么 PyPy 的实现可能是一个指南(快速浏览,它看起来与 CPython 和Jython做的事情基本相同)。

不过,作为一般资源,没有理由认为 PyPy 对所有字符串函数的实现会反映 CPython 中使用的算法——毕竟,PyPy 旨在作为在 JIT 中运行的 Python 的优化版本,这可能有对方法的最合理实现有重大影响(尤其是字符串函数,它经常成为性能瓶颈,因此“优化”运行时的实现者有优化的动机)。

考虑一个更普遍的问题,CPython 开发人员几乎没有动力去维护已经在 C 中维护的低级库的一组单独的纯 Python 实现。镜像实现变得陈旧的风险似乎很大或者与实际正在做的事情不准确,这最终可能对那些试图在不阅读 C 代码的情况下理解 Python 内部工作原理的人有害。

于 2011-11-27T15:43:43.137 回答