当我输入以下内容时:
str = str.replace("something", "something_else")
它返回:
AttributeError: 'tuple' object has no attribute 'replace'
我使用的是Python 3.6.5。任何帮助将不胜感激。
答案 0 :(得分:-2)
您正在重写内置的“ str”,即字符串类。我不确定为什么您收到的错误消息为AttributeError: 'tuple' object has no attribute 'replace'
,但是有可能与重新分配str
名称有关。
似乎您在上一行(未显示)中用元组替换了str
。
如果您要重新启动解释器并按原样键入此代码,则可能会得到以下输入:
In [1]: str = str.replace('something', 'something_else')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-040d062d3c3f> in <module>
----> 1 str = str.replace('something', 'something_else')
TypeError: replace() takes at least 2 arguments (1 given)
您可能想说明以下内容:
In [2]: my_string = 'something'
In [3]: my_string = my_string.replace('something', 'something_else')
In [4]: my_string
Out[4]: 'something_else'
答案 1 :(得分:-2)
检查str
的内容。它包含一个元组,而不是字符串。是.split()
操作或类似操作的输出吗?
例如:
>>> str = ( 'a', 'b', 'banana' )
>>> str.replace("something", "something_else")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'replace'
显然,它可以与正确的str
一起工作:
>>> str = 'banana'
>>> str.replace("something", "something_else")
>>>