Python可链接类方法

moe*_*nad 0 python methods class method-chaining chaining

我想做以下事情:

pattern = cl().a().b("test").c()
Run Code Online (Sandbox Code Playgroud)

哪个cl是类,a, b, c是类方法.

之后我需要调用pattern.to_string它应该输出一个形成的字符串.每个方法返回一个字符串.

现在我怎样才能实现上述目标?将方法输出附加到列表?可连接功能怎么样?如果我以正常的方式写课,上面的方法就不行了.

谢谢.

Sim*_*ser 5

返回每个方法末尾的类实例,并将中间结果存储在类变量中:

class MyClass:
    result = None

    def a(self):
        # do things and store in self.result
        self.result = ...
        return self

    def b(self, value):
        # do things and store in self.result
        self.result = ...
        return self
Run Code Online (Sandbox Code Playgroud)

这允许您根据需要链接方法:cl().a().b("test").c().

然后,您可以通过查看值来获得结果instance.result.