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.
我有一个 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.