将Kwargs转换为变量



如何将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采用可选的globals和/或locals参数,该参数定义了该表达式的活动范围变量。如果您提供globals(第二个位置参数),而不是locals(第三个),则将globals重复使用为locals,因此:

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

最新更新