Python 2.7:'string'对象的'replace'方法已弃用

6 投票
3 回答
26148 浏览
提问于 2025-04-17 07:02

我的“同事”刚告诉我,string对象的replace方法已经被淘汰,并且会在3.xx版本中被移除。

这是真的吗?如果是真的,我该怎么替代它呢(能给点例子吗)?

3 个回答

0

要做到这一点,你可以使用下面的代码:

    a = "hello".replace("e", "o")
    print(a)

这段代码的输出结果应该是这样的:

hollo
5

根据我对这些弃用警告的理解,只有某些函数被标记为不推荐使用,而方法则没有。

比如,如果你使用:

s = 'test'
string.replace(s, 'est', '')

你应该把它替换成

s.replace('est', '')
21

3.2版本的文档里并没有说字符串类型的replace方法应该被移除。我也看不出有什么理由让人去这么做。

不过,字符串模块里的replace函数是被移除了。

举个例子:

"bla".replace("a", "b")

这个调用的是字符串类型的replace方法。

string.replace("bla", "a", "b")

这个调用的是字符串模块的replace函数。

也许这就是你的同事搞混的地方。使用字符串模块的函数在Python里是一种非常非常老旧的做法。从Python 2.0开始,它们就被标记为不推荐使用了(!)。我对Python的历史了解不多,但我猜大概是在他们把面向对象的概念引入语言的时候。

撰写回答