擅长:python、mysql、java
<p>这需要一个外部库,但您可以使用<a href="https://iteration-utilities.readthedocs.io/en/latest/generated/first.html" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code>from iteration_utilities import first
# The logic that you want to execute for each function (it's the same for each function, right?)
def doesnt_error(func):
try:
return func()['content']
except (KeyError, TypeError):
return False
# some sample functions
func1 = lambda: None
func2 = lambda: {}
func3 = lambda: {'content': 'what?'}
# A tuple containing all functions that should be tested.
functions = (func1, func2, func3)
# Get the first result of the predicate function
# the `retpred`-argument ensures the function is only called once.
value = first(functions, pred=doesnt_error, retpred=True)
</code></pre>
<hr/>
<p><sup>1这是我写的第三方库:<a href="https://github.com/MSeifert04/iteration_utilities" rel="nofollow noreferrer">^{<cd2>}</a>。</sup></p>