具有中间结果的调用链方法

我有一个课程和一些方法。我能否在调用之间保留方法的结果。

调用示例:

结果= my_obj.method_1(...)。method_2(...)。method_3(...)

method_v3(...)收到来自method_2(..)谁的结果时method 1(..)

请告诉我,是否有模式或其他方法可以决定上述示例?


慕雪6442864
浏览 164回答 2
2回答

绝地无双

有一种非常简单明了的模式,称为Builder Patternwhere方法,该方法基本上返回对当前对象的引用,因此,将方法调用彼此链接在一起,而不是将它们彼此链接在一起。《四人帮》一书中描述的实际构建器模式有些冗长(为什么要创建一个构建器对象),而只是self从每个返回一个引用以setXXX()进行干净的方法链接。在Python中可能看起来像这样:class Person:    def setName(self, name):      self.name = name      return self   ## this is what makes this work   def setAge(self, age):      self.age = age;      return self;   def setSSN(self, ssn):      self.ssn = ssn      return self您可以这样创建一个人:p = Person()p.setName("Hunter") .setAge(24) .setSSN("111-22-3333")请记住,p.a().b().c()由于Python不会忽略空格,因此您实际上必须将方法与它们的接触联系起来。正如@MaciejGol在注释中指出的那样,您可以将其分配为p与空白链接:p = (   Person().setName('Hunter')           .setAge(24)           .setSSN('111-22-3333'))我不能说这是否是Python的最佳样式/想法,但这是它在Java中的外观。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python