通过dict键返回原始表达式?

时间:2021-06-14 01:20:24

标签: python

dct={'t1':2>1,'t2':'a'=='b'}

dct 值为 True 或 False。使用 dct['t1'] 时,它将返回 True。但我想返回原始表达式,这意味着 '2>1'(类型为字符串)。

  • Python 版本:3.7

1 个答案:

答案 0 :(得分:1)

用 Python 编写并执行的表达式将被评估,它不再作为表达式存在。 IE。 x = 1 + 2 将值 3 分配给 x,没有记忆它是评估 1 + 2 的结果。

但就像在源代码中一样,您可以将表达式保存为字符串。毕竟,这就是你的源代码,只是一个长文本字符串。

所以:

dct = {'t1': "2>1", 't2': "'a'=='b'"}
print(dct['t1'])
print(eval(dct['t1']))

但是,请记住,eval() 仅应在您确实需要跟踪此类内容的情况下使用。通常,使用 eval() 效率不高,而且可能非常危险,具体取决于这些字符串的来源。