标题几乎解释了这个问题。我不知道是否有实用的解决方案,或者我是否对代码的行为过于挑剔。这篇文章暗示了正确的方向,但我从来没有任何代码可以工作。 https://medium.com/@adamshort/python-gems-5-silent-function-chaining-a6501b3ef07e
这是我想要的功能示例:
class Calc:
def __init__(self, n=0):
self.n = n
def add(self, n):
self.n += n
return self
def might_return_false(self):
return False
def print(self):
print(self.n)
return self
w = Calc()
# The rest of the chain after might_return_false should be ignored
addedTwice = w.add(5).might_return_false().add(5).print()
w.print() # Should print 5
print(addedTwice) # Should print False