擅长:python、mysql、java
<p>你可以用二进制,也许:</p>
<pre><code>flag_bits = {flag1: 0b0000000001,
flag2: 0b0000000010,
flag3: 0b0000000100,
flag4: 0b0000001000,
condition1: 0b0000010000,
condition2: 0b0000100000,
...}
</code></pre>
<p>然后,当您接收到标志和条件时,按位计算它们,并有一个结果字典或基于它计算结果的方法:</p>
<pre><code>def add_response(response, add_value):
return response += add_value
def subtract_response(response, subtract_value):
return response -= subtract_value
response_actions = {0b0000110011: ('add', var1, 0b0000001000), ...}
response_methods = {'add': add_response, 'sub': subtract_response, ...}
response_action = response_actions[0b0000110011]
response_method = response_action[0]
response = response_method(response, respnose_action[1])
flag_bits = response_action[2]
</code></pre>
<p>显然,这并不完全完美,但它将消除大量的if,并将操作转换为查找,希望能节省时间。你知道吗</p>