首页 > 解决方案 > 使用 eval(*code*) 和只使用 *code* 有什么区别?

问题描述

有什么区别:

cerebro.addsizer(bt.sizers.FixedSize, **eval('dict(' + args.sizer + ')'))

和:

cerebro.addsizer(bt.sizers.FixedSize, dict(args.sizer))?

我运行了第一个并且它工作但第二个导致错误。

有人可以帮帮我吗?

标签: python

解决方案


Python 的 eval() 允许您从基于字符串或基于编译代码的输入计算任意 Python 表达式。当您尝试从作为字符串或编译代码对象的任何输入动态评估 Python 表达式时,此函数会很方便。


推荐阅读