制作 "string" .functions() 函数 python



可能的重复:
我可以将自定义方法/属性添加到内置的Python类型吗?

在整个使用python的整个过程中,我都看到了许多可以在诸如.lower().startswith().endswith()之类的字符串上使用的东西,但是,我不确定如何制作与它相似的功能,就像我认为必须使用的那样将字符串传递到功能的类,我只是想做诸如"the string".myfunc()而不是MyClassObjWithString.myfunc()之类的事情。

有什么方法可以做出这样的函数?

在python中,字符串文字始终为basestring类型(或PY3K中的str)。因此,您不能将方法添加到字符串文字中。您可以创建一个接受构造函数中字符串的类,并具有可能有用的方法:

MyClass("the string").myfunc()

当然,然后可能会说您应该写一个函数:

myfunc("the string")

您无法编写可以使用的函数

"the string".myfunc()

因为那意味着修改字符串类。但是,为什么不写一种可以做的方法

myfunc("the string")

之类的东西
def myfunc(s):
   return s * 2

这些是方法,虽然您可以在定义后将方法添加或替换为(某些)类 - 一种称为monkey -patching的练习 - 在内置类中,它是高度灰心的,并且无法实现。

只使用函数。

最新更新