string.replace / .strip / .find 和内置函数之间有区别吗?

Are there differences between string.replace / .strip / .find and the built-in functions?

我有一个 Python 2 代码库,我正在迁移到 Python 3。旧代码库使用

import string

foo = string.replace(s, old, new)
foo = string.strip(s)
foo = string.find(s, sub, start, end)

我用 2to3 移动了它,但这会出错。我的猜测是我必须将上面的内容替换为

foo = s.replace(old, new)
foo = s.strip()
foo = s.find(sub, start, end)

我看了文档:

它们看起来完全一样。为什么这些函数首先出现在 string 模块中? Python 2.7之前有变化吗?是否可能存在性能差异或某些特殊情况的处理方式不同?

根据 CPython 2.7 string module source 判断,它们是方法调用的简单包装器。这在更老的 Python 中可能有所不同。来自相同代码的初始评论:

Beginning with Python 1.6, many of these functions are implemented as methods on the standard string object.