python - eval() 总是错误的吗?

标签 python eval

<分区>

我知道应该避免使用 eval() 和 exec(),但在这种情况下,这似乎是最佳选择:我从 wxPython 中的复选框和文本框中获取值,并将它们放入我的配置类中。下面是我如何使用 eval():

config = wx.Config()
checkBoxes = ['option_1', 'option_2']
for key in checkBoxes:
    config.Write(key, str(eval('self.m_checkBox_'+key+'.GetValue()'))

没有任何安全问题,因为没有任何用户输入来评估,这对我来说似乎很清楚。有更好的方法吗?

最佳答案

怎么样:

config = wx.Config()
checkBoxes = {'option_1': m_checkBox_option_1, 
              'option_2': m_checkBox_option_2}
for checkbox in checkBoxes:
    config.Write(checkbox, str(checkBoxes[checkbox].Value()))

关于python - eval() 总是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768087/

相关文章:

python - 枕头 PixelAccess 类型错误 : function takes exactly 1 argument (4 given)

javascript - 当节点/属性名称是变量/参数时寻找 eval() 替代方案

javascript - 通过字符串访问本地范围的变量——除了 eval 之外还有什么?

javascript - 评估与执行脚本

javascript - 如何在不使用 Eval 的情况下调用匿名函数?

python - 如何使用 python 将多个列表组合成多个字典?

python - 如何在 Docker 容器中运行 Lektor?

python 3 regex - 在字符串中查找所有重叠匹配项的开始和结束索引

python - 为什么子进程在关闭后仍然可以写入标准输出?

python - 如何评估包含等号的字符串?