Python 将KWARG转换为变量?

Python 将KWARG转换为变量?,python,python-3.x,scope,eval,Python,Python 3.x,Scope,Eval,如何将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...' 我将在字符串中搜索

如何将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
,则根本不需要将它们转换为局部变量。定义该表达式的活动范围变量的。如果提供的是
globals
(第二个位置参数)而不是
locals
(第三个),则
globals
将被重用为
locals
,例如:

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

如果您计划使用
eval
,则根本不需要将它们转换为本地值。定义该表达式的活动范围变量的。如果提供的是
globals
(第二个位置参数)而不是
locals
(第三个),则
globals
将被重用为
locals
,例如:

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

你的字典总是有两个元素,
a
b
?如果是这样,只需执行
int(dict['a'])*int(dict['b'])
。这就是你想要的吗?你的字典总是有两个元素,
a
b
?如果是这样,只需执行
int(dict['a'])*int(dict['b'])
。这就是你想要的吗?