Python定义函数

Python定义函数,python,string,function,Python,String,Function,我想做一个从字符串中去除空白的函数,到目前为止我得到的是: def stripped(x): x = x.replace(' ', '') string = " yes Maybe So" 我想通过这样做来减少空间 string.stripped() 但我总是犯这个错误 AttributeError:'str'对象没有属性'stripped' 我做错了什么我猜我只是忽略了一些简单的东西,提前谢谢。你不能像那样向现有类添加方法。您可以编写一个函数来接收和返回字符串: def

我想做一个从字符串中去除空白的函数,到目前为止我得到的是:

def stripped(x):
    x = x.replace('  ', '')

string = " yes   Maybe   So"
我想通过这样做来减少空间

string.stripped()
但我总是犯这个错误 AttributeError:'str'对象没有属性'stripped'


我做错了什么我猜我只是忽略了一些简单的东西,提前谢谢。

你不能像那样向现有类添加方法。您可以编写一个函数来接收和返回字符串:

def stripped(x):
    return x.replace('  ', '')
然后通过传递字符串来调用它:

s = " yes   Maybe   So"
s = stripped(s)

不能像这样向现有类添加方法。您可以编写一个函数来接收和返回字符串:

def stripped(x):
    return x.replace('  ', '')
然后通过传递字符串来调用它:

s = " yes   Maybe   So"
s = stripped(s)

定义函数时,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'
>>>
注意你的要求在技术上是可能的但这是一个猴子补丁,不应使用。但为了完整起见:

>>> _str = str
>>> 
>>> class str(_str):
    def stripped(self):
        return self.replace('  ', '')


>>> string = str(" yes   Maybe   So")
>>> string.stripped()
' yes Maybe So'
>>>

定义函数时,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'
>>>
注意你的要求在技术上是可能的但这是一个猴子补丁,不应使用。但为了完整起见:

>>> _str = str
>>> 
>>> class str(_str):
    def stripped(self):
        return self.replace('  ', '')


>>> string = str(" yes   Maybe   So")
>>> string.stripped()
' yes Maybe So'
>>>

如果需要所有空格,而不仅仅是空格,可以执行
'.join(string.split())


如果需要所有空格,而不仅仅是空格,可以执行
'.join(string.split())


您需要将字符串指定给
stripped
stripped
不是字符串方法。您希望
stripped
返回x,然后
string=stripped(string)
可能重复的字符串,您需要将字符串提供给
stripped
stripped
不是一个字符串方法。您希望
stripped
返回x,然后
string=stripped(string)
可能会重复Gotcha,我不认为我必须返回它,我没有正确理解,感谢您的帮助,这是可行的。我会尽快接受的。@Cannon很高兴我能帮上忙。明白了。我想我不必归还它,我不太明白,谢谢你的帮助。我会尽快接受。很高兴我能帮上忙。虽然这可能提供了一个更好的方法,但它没有回答主要问题,这可能就是你被否决的原因。(我没有投反对票)。虽然这可能提供了一个更好的方法,但它没有回答主要问题,这可能就是你被否决的原因。(我没有投反对票)。