擅长:python、mysql、java
<p>把两个函数放到一个列表中,就得到了一个函数列表。它不会生成一个调用前面两个函数的新函数。为此,您需要定义一个新的包装函数,例如:</p>
<pre><code>def call_all(*funcs):
"""Create a new wrapper to call each function in turn."""
def wrapper(*args, **kwargs):
"""Call the functions and return a list of their outputs."""
return [func(*args, **kwargs) for func in funcs]
return wrapper
</code></pre>
<p><em>(如果<code>*</code>语法不熟悉,请参见<a href="https://stackoverflow.com/q/36901/3001761">What does ** (double star) and * (star) do for parameters?</a>)</em>,您现在可以这样使用:</p>
<pre><code>theFunction = call_all(Bar, Foo)
</code></pre>
<hr/>
<p>另请注意:</p>
<pre><code>theFunction = None
if (isTheWorldRound):
return Bar
else:
return [Bar, Foo]
</code></pre>
<p>有点尴尬,我会这样写:</p>
<pre><code>if isTheWorldRound:
return Bar
return [Bar, Foo]
</code></pre>
<p>您还应该根据<a href="https://www.python.org/dev/peps/pep-0008/" rel="nofollow noreferrer">the style guide</a>重命名函数/变量。你知道吗</p>