<p>这是fluentapi设计的一个例子,它的核心使用方法链。Python中的实现思想是在完成每个方法应该执行的操作之后,从每个方法返回实例。你知道吗</p>
<p>下面是一个天真的例子:</p>
<pre><code>In [1]: class Fluent:
...: def __init__(self, num):
...: self.num = num
...: def add_two(self):
...: self.num += 2
...: return self # this allows us for chaining
...: def result(self):
...: return self.num
...:
In [2]: f = Fluent(10)
In [3]: f.add_two().result()
Out[3]: 12
</code></pre>
<p>可以将<code>add_two</code>设为<code>property</code>以避免方法调用,并将其作为属性引用:</p>
<pre><code>f.add_two.result()
</code></pre>
<hr/>
<p><strong>编辑:</strong>带有<code>property</code>的示例:</p>
<pre><code>In [4]: class Fluent:
...: def __init__(self, num):
...: self.num = num
...: @property
...: def add_two(self):
...: self.num += 2
...: return self # this allows us for chaining
...: def result(self):
...: return self.num
...:
In [5]: f = Fluent(10)
In [6]: f.add_two.result()
Out[6]: 12
</code></pre>