【问题标题】:Python chainable class methodsPython 可链接的类方法
【发布时间】:2013-11-04 00:29:33
【问题描述】:

我想做以下事情:

pattern = cl().a().b("test").c()

其中cl 是一个类,a, b, c 是类方法。

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

现在我该如何实现上述目标?将方法输出附加到列表中?可链接功能呢?如果我以正常方式编写课程,上述方法将不起作用。

谢谢。

【问题讨论】:

  • “正常方式”是什么意思?到目前为止,您尝试了哪些方法,但在哪些方面没有奏效?
  • “每个方法都返回一个字符串”——不是这样的。
  • @poke 这就是我在stackoverflow上问的原因。我不太确定应该如何实现可链接的函数。

标签: python class methods chaining method-chaining


【解决方案1】:

在每个方法结束时返回类实例并将中间结果存储在类变量中:

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

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

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

【讨论】:

  • 哦,我明白了。谢谢!!如果可能,我会在 10 分钟后接受您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-08-23
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 2014-02-12
  • 2011-03-23
相关资源
最近更新 更多