可能重复:
Can I add custom methods/attributes to built-in Python types?
在整个使用Python的过程中,我看到很多可以在.lower()
或.startswith()
或.endswith()
等字符串上使用的东西,但是,我不确定如何制作类似的函数对它来说,正如我所想的那样,必须使用一个将字符串传递给函数的类,我只想做"the string".myfunc()
而不是MyClassObjWithString.myfunc()
之类的事情。
有没有办法制作这样的功能?
答案 0 :(得分:6)
在python中,字符串文字的类型始终为basestring
(或py3k中的str
)。因此,您无法向字符串文字添加方法。您可以创建一个在构造函数中接受字符串的类,并且具有可能有用的方法:
MyClass("the string").myfunc()
当然,可能会有人认为你应该写一个函数:
myfunc("the string")
答案 1 :(得分:1)
您无法编写可以执行的功能
"the string".myfunc()
因为这意味着要修改字符串类。但为什么不写一个你可以做的方法
myfunc("the string")
像
这样的东西def myfunc(s):
return s * 2
答案 2 :(得分:0)
这些是方法,虽然你可以在定义了(某些)类之后添加或替换方法 - 这种做法称为猴子修补 - 但我们强烈建议不要使用内置类。
只需使用一个功能。