擅长:python、mysql、java
<p>您当然可以按照<code>FooBar</code>将返回一个函数来计算其中一个或两个函数的方式来组合一个新函数。你知道吗</p>
<p>考虑一下:</p>
<pre><code>def F():
funcs = [Foo, Bar]
ret = None
for f in funcs:
ret = f()
return ret
</code></pre>
<p>您可以在<code>FooBar</code>中创建一个<em>闭包</em>,以返回单个组合:</p>
<pre><code>def FooBar(isTheWorldRound = True):
if (isTheWorldRound):
funcs = [Bar]
else:
funcs = [Bar, Foo]
def theFunction():
ret = None
for f in funcs:
ret = f()
return ret
return theFunction
</code></pre>
<p>幸运的是,这在Python中很容易,因为函数是一级对象。你知道吗</p>
<p>Edit:似乎您希望在执行<code>FooBar</code>期间直接执行函数。然后可以放弃闭包,但仍然调用循环中的所有函数。你知道吗</p>