Python 使用eval(*code*)和仅使用*code*有什么区别?

Python 使用eval(*code*)和仅使用*code*有什么区别?,python,Python,以下两者之间的区别是什么: cerebro.addsizer(bt.sizers.FixedSize, **eval('dict(' + args.sizer + ')')) 以及: 我运行了第一个,它工作了,但是第二个导致了一个错误 有人能帮我吗?Python的eval()允许您从基于字符串或基于编译代码的输入中计算任意Python表达式。当您试图从作为字符串或编译代码对象的任何输入动态计算Python表达式时,此函数非常方便。您是否尝试过**dict(args.sizer)?除了eval之

以下两者之间的区别是什么:

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

我运行了第一个,它工作了,但是第二个导致了一个错误


有人能帮我吗?

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

您是否尝试过
**dict(args.sizer)
?除了
eval
之外,
***
是改变程序运行方式的部分,因为第二个部分与第一个部分(您在
***
中留下的部分)不同。
eval('dict('+args.sizer+'))
通常不会等同于
dict(args.sizer))
…这不是问题(或其他任何问题)的答案。
cerebro.addsizer(bt.sizers.FixedSize, dict(args.sizer))?