TypeError:当我们使用(old ='XYZ',new ='ABC')时,replace()不接受关键字参数

时间:2019-10-24 16:46:33

标签: python python-3.x

我尝试通过提供arg_name = VALUE来尝试字符串替换功能,但是得到了TypeError: replace() takes no keyword arguments

>>>s = "shubham shriavstava"

>>>s.replace(old=u"sh", new=u"",count=1)

  

TypeError:replace()不使用关键字参数

这是怎么了?

2 个答案:

答案 0 :(得分:1)

您会收到错误消息,因为str.replace是用C实现的内置函数,不能接受关键字参数。来自Calls section of the docs

  

CPython实现细节:实现可能提供内置函数,其位置参数甚至没有名称,甚至   是否出于文档目的对其“命名”,以及   因此无法通过关键字提供。

您可以通过从函数调用中删除关键字来解决此问题。

答案 1 :(得分:0)

  

替换(自己,旧的,新的,计数= -1,/)

     

返回一个副本,其中所有出现的子字符串old都替换为new。

执行以下操作:

s = "shubham shriavstava"
new_s = s.replace(u"sh", u"", 1) # same to s.replace("sh", "", 1)
print(new_s)
  

输出:“ ubham shriavstava”