在Python中,我可以在一个条件中处理两个变量吗?

在Python中,我可以在一个条件中处理两个变量吗?,python,conditional,Python,Conditional,有没有可能简化这一点?也许是两者的结合?教我干燥的方法:-\ o = old_last_result if o == 7: old_last_result_msg = result_7 elif o == 12: old_last_result_msg = result_12 elif o == 23: old_last_result_msg = result_23 elif o == 24: old_last_result_msg = result_24 eli

有没有可能简化这一点?也许是两者的结合?教我干燥的方法:-\

o = old_last_result
if o == 7:
    old_last_result_msg = result_7
elif o == 12:
    old_last_result_msg = result_12
elif o == 23:
    old_last_result_msg = result_23
elif o == 24:
    old_last_result_msg = result_24
elif o == 103:
    old_last_result_msg = result_103
elif o == 1000:
    old_last_result_msg = result_1000
else:
    old_last_result_msg = "Error code: #%s" % old_last_result

n = new_last_result
if n == 7:
    new_last_result_msg = result_7
elif n == 12:
    new_last_result_msg = result_12
elif n == 23:
    new_last_result_msg = result_23
elif n == 24:
    new_last_result_msg = result_24
elif n == 103:
    new_last_result_msg = result_103
elif n == 1000:
    new_last_result_msg = result_1000
else:
    new_last_result_msg = "Error code: #%s" % new_last_result

您似乎正在将数字代码映射到字符串消息。使用字典!注意:

_result_msg = {
    7: result_7,
    12: result_12,
    # ... etc
}

o = old_last_result
try:
    old_last_result_msg = _result_msg[o]
except KeyError:
    old_last_result_msg = 'Error code: #%s' % o

您似乎正在将数字代码映射到字符串消息。使用字典!注意:

_result_msg = {
    7: result_7,
    12: result_12,
    # ... etc
}

o = old_last_result
try:
    old_last_result_msg = _result_msg[o]
except KeyError:
    old_last_result_msg = 'Error code: #%s' % o

您可以使用字典:

results = {7: result_7, ..., 1000: result_100}
old_last_result_msg = results.get(o, "Error code: #%s" % old_last_result)

您可以使用字典:

results = {7: result_7, ..., 1000: result_100}
old_last_result_msg = results.get(o, "Error code: #%s" % old_last_result)

你可能对eval感兴趣

i = 7
result_7 = 'foo'
print eval('result_%s' % i)
> foo

你可能对eval感兴趣

i = 7
result_7 = 'foo'
print eval('result_%s' % i)
> foo

您可以使用内置的局部变量或全局变量来构造变量,如:

var res = "result_%d"%o
if res in locals(): old_last_result_msg = locals()[res]
else:
    if res in globals(): old_last_result_msg = globals()[res]
    else: raise Exception("unexpected result:%s"%res)

您可以使用内置的局部变量或全局变量来构造变量,如:

var res = "result_%d"%o
if res in locals(): old_last_result_msg = locals()[res]
else:
    if res in globals(): old_last_result_msg = globals()[res]
    else: raise Exception("unexpected result:%s"%res)

我不会反对投票,但是。。。真的,不。让糟糕的PHP实践留在PHP中吧^^^我不会反对投票,但是。。。真的,不。让糟糕的PHP实践留在PHP中吧。只是抬头看了看,甜言蜜语。只是抬头看了看,快