擅长:python、mysql、java
<p>最常见的方法就是一行elifs,这并没有什么问题,事实上,<a href="http://docs.python.org/tutorial/controlflow.html#if-statements" rel="nofollow noreferrer">documentation</a>说使用elifs代替开关。但是,另一种非常流行的方法是创建函数字典:</p>
<pre><code>functions = {100:do_something,101:do_sth_different}
user_input = 100
try:
functions[user_input]()
except KeyError:
do_correct()
</code></pre>
<p>这不允许使用给定的<code>if user_input > 100</code>行,但是如果您只需要检查等式关系和泛型情况,那么结果会很好,特别是如果您需要多次这样做的话。你知道吗</p>
<p>try except case可以通过显式调用字典上的get来替换,使用泛型函数作为<code>default</code>参数:</p>
<pre><code>functions.get(user_input,do_correct)()
</code></pre>
<p>如果那能让你的船浮起来。你知道吗</p>