Python:如何将自定义函数添加到预先存在的对象?

时间:2014-10-26 07:12:25

标签: python function class object methods

是否可以将自己的自定义函数添加到现有对象中?

例如,'字符串'数据类型没有内置reverse()函数,与list不同,有没有办法添加反向函数,如果我有一个字符串变量varvar.reverse()会返回反向的字符串?

我认为这样做的一种方法是,如果我创建一个class CustomString,它具有与字符串相同的属性但具有额外定义的反向函数,这可能吗? (我还不熟悉Python OOP)

或者还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用继承来执行此操作:

class new_string(str):
    def reverse(self):
        blah

s = new_string('hello')
s.reverse()

编辑:你的代码是这样的:

>>> class S(str):
...     def reverse(self):
...         return self.__str__()[::-1]
... 
>>> s = S('hello')
>>> s.reverse()
'olleh'