如何将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。这样做的最佳方式是什么?
答案 0 :(得分:2)
如果您计划使用eval
,则根本不需要将其转换为本地人。 eval
takes optional globals
and/or locals
arguments定义该表达式的活动范围变量。如果您提供globals
(第二个位置参数)而非locals
(第三个),那么globals
将重新用作locals
,例如:
>>> eval('a * b', {'a': 5, 'b': 3})
15