Python 列出方法

Python List methods

我不得不在 Python 中进行文本处理。

所以我创建了一个 class TextProcessing:

manipulator = TextProcessing("one two three four four")
repr(manipulator) => "one two three four four"
manipulator["four"]  //=> [3, 4] => I made a list for that

但在那之后我不得不做一个这样的函数:

manipulator.two.replace("second") => "one second three four four"

我不知道如何 link 我的列表中的两个。

你可以玩重写 __getattr__

class A(object):
    def __init__(self, s):
        self.s = s
    def replace(self, x):
        self.s = self.s.replace(self.x, x)
    def __getattr__(self, name):
        self.x = name
        return self

a = A('abc')
a.b.replace('X')
print a.s

class B(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def replace(self, x):
        self.x.s = self.x.s.replace(self.y, x)
class A(object):
    def __init__(self, s):
        self.s = s
    def __getattr__(self, name):
        return B(self, name)

a = A('abc')
a.b.replace('X')
print a.s