制作“string”.functions()函数python

时间:2012-10-25 19:36:57

标签: python function python-2.7

  

可能重复:
  Can I add custom methods/attributes to built-in Python types?

在整个使用Python的过程中,我看到很多可以在.lower().startswith().endswith()等字符串上使用的东西,但是,我不确定如何制作类似的函数对它来说,正如我所想的那样,必须使用一个将字符串传递给函数的类,我只想做"the string".myfunc()而不是MyClassObjWithString.myfunc()之类的事情。

有没有办法制作这样的功能?

3 个答案:

答案 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)

这些是方法,虽然你可以在定义了(某些)类之后添加或替换方法 - 这种做法称为猴子修补 - 但我们强烈建议不要使用内置类。

只需使用一个功能。