在Python中实现字符串函数?

时间:2011-11-27 14:37:28

标签: python string implementation pypy

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

据我所知,str是一个内置模块,所以它的功能是用C实现的。 但是不管它有代码吗?在Pypy怎么样?从我到目前为止所读到的,他们已经在Python中重新实现了许多内置模块。

示例问题:如何实现字符串的拆分方法? (不编写我自己的实现)

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

1 个答案:

答案 0 :(得分:5)

这并没有真正回答提出的问题,只是有点太长时间无法发表评论。

通过源代码快速挖掘表明PyPy有两个split()this high-level, readable versionthis lower-level version的实现,它们似乎是rpython本身中split()的实现。

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

作为一般资源,没有理由认为PyPy的所有字符串函数的实现都会反映CPython中使用的算法 - 毕竟,PyPy是作为在JIT中运行的Python的优化版本,并且这可能会对方法的最合理实现产生重大影响(特别是字符串函数,这通常可能是性能瓶颈,因此“优化”运行时的实现者因此有动力进行优化)。

考虑更普遍的问题,CPython开发人员很少有动机维护已经在C中维护的低级库的单独的纯Python实现集。似乎镜像实现存在很大的风险对于那些在不阅读C代码的情况下试图理解Python内部工作原理的人来说,这可能会变得陈旧或不准确,这最终会对人们造成伤害。