我想创建一个从字符串中删除空格的函数,到目前为止我是:
def stripped(x):
x = x.replace(' ', '')
string = " yes Maybe So"
我想通过这样做来剥夺空间
string.stripped()
但我一直收到这个错误 AttributeError:' str'对象没有属性'剥离'
我做错了什么我猜这是一件简单的事,我只是在俯视,提前谢谢。
答案 0 :(得分:1)
定义函数时,Python会创建一个名为stripped
的独立函数对象。它不会将您的函数添加到内置str
对象。你只是
need to call your method on the string normally:
>>> def stripped(x):
x = x.replace(' ', '')
>>> string = " yes Maybe So"
>>> stripped(string)
>>>
但请注意string
不会被修改,您需要返回x.replace()
的结果并将其分配给string
:
>>> def stripped(x):
return x.replace(' ', '')
>>> string = " yes Maybe So"
>>> string = stripped(string)
>>> string
' yes Maybe So'
>>>
请注意您的要求 techinally 可能。 然而,这是一个猴子补丁,不应该使用。但仅仅是为了完整性:
>>> _str = str
>>>
>>> class str(_str):
def stripped(self):
return self.replace(' ', '')
>>> string = str(" yes Maybe So")
>>> string.stripped()
' yes Maybe So'
>>>
答案 1 :(得分:0)
您无法将方法添加到现有类中。您可以编写一个接收并返回字符串的函数:
def stripped(x):
return x.replace(' ', '')
通过传递你的字符串来调用它:
s = " yes Maybe So"
s = stripped(s)
答案 2 :(得分:-1)
如果你想要所有的空格,而不仅仅是空格,你可以''.join(string.split())
def stripped(string):
return ''.join(string.split())
string = stripped(' yes Maybe So')
# But it would also handle this
string = stripped(' yes \n Maybe So\n')
assert string == 'yesMaybeSo'