擅长:python、mysql、java
<p>考虑到一般范围而不是特定的用例,我将以一种更“功能性”的方式来看待这一点:</p>
<ul>
<li><p>不要让转换到位,而是返回新的列表。这就是函数式编程中标准函数的工作原理(在Python中也是<code>map()</code>、<code>filter()</code>和{<cd3>})。</p></li>
<li><p>专注于转换而不是数据。特别是,我根本不会创建像您的<code>ListTransform</code>这样的类,而是只创建一些可以链接的转换对象。</p></li>
</ul>
<p>为了在代码中考虑函数编程,转换将只是函数,就像在您的设计中一样。除此之外,您还需要某种变换组合:</p>
<pre><code>def compose(f, g):
return lambda lst: f(g(lst))
</code></pre>
<p>(为了简单起见,给定的实现只有两个参数,而不是任意数字。)您的示例现在非常简单:</p>
^{pr2}$
<p>另一种方法是将转换实现为类而不是函数。在</p>