擅长:python、mysql、java
<p>您可以尝试一次考虑单个变量的更新过程,并创建一个函数来处理该过程。这样,逻辑就可以很容易地为每个变量重用。这意味着您将拥有一个处理4(或5)个案例并调用4次(导致8-9个步骤)的函数,而不必进行每个组合(16个步骤)。这还有一个好处,就是使代码更具可读性和可维护性</p>
<p>例如:</p>
<pre class="lang-py prettyprint-override"><code>def get_var(x):
if x == "var1":
return var1
if x == "var2":
return var2
if x == "var3":
return var3
if x == "var4":
return var4
return x
eax = get_var(eax)
ebx = get_var(ebx)
ecx = get_var(ecx)
edx = get_var(edx)
</code></pre>
<p>请注意,这基本上是一个switch语句(Python不支持该语句),可以用以下方式编写(根据代码的其他部分,更新起来可能更容易):</p>
<pre class="lang-py prettyprint-override"><code>vars_lookup = {
"var1": var1,
"var2": var2,
"var3": var3,
"var4": var4,
}
def get_var(x):
return vars_lookup.get(x, x)
eax = get_var(eax)
ebx = get_var(ebx)
ecx = get_var(ecx)
edx = get_var(edx)
</code></pre>
<p>这里请注意,<code>dict</code>类型的<code>get</code>方法的工作原理与通常的方括号表示法(<code>vars_lookup[x]</code>)类似,但处理在字典中找不到键的情况,然后返回默认值(第二个参数)</p>