将 kwargs 转换为变量?

Converting kwargs into variables?

如何将 kwargs 对象转换为局部变量? 我是一名数学老师,想写一个辅助函数,可以用JS风格的模板字符串来写题

我想做这样的事情:

TemplateString('{{a*b}} apples are shared among {{a}} children. How many apples do each child get?', {'a': 3, 'b': 5})
//return '15 apples are shared among 3 children...'

我要在字符串中搜索“{{}}”并调用其中的 eval()。但首先我需要将 {'a': 3, 'b': 5} 转换为局部变量 a=3 和 b=5。变量可以是 int、float 或 str。执行此操作的最佳方法是什么?

如果您打算使用 eval,则根本不需要将它们转换为本地语言。 eval takes optional globals and/or locals arguments 定义该表达式的活动范围变量。如果您提供 globals(第二个位置参数)而不是 locals(第三个),那么 globals 将被重用为 locals,例如:

>>> eval('a * b', {'a': 5, 'b': 3})
15