这个函数可以用字典方式显示出函数中的局部变量,
比如下面的程序:
def func(a=1):
b = 2
print(locals())
func()
打印出来的局部变量如下:
{'a': 1, 'b': 2}
这样看起来,明显局部变量被当成字典存于locals中了,因此,我们可以写一个稍微复杂的程序,根据传入参数,直接调用内部函数,如下所示:
def mod(str_cmd, params):
def show(text):
print("show list params: {}".format(text))
print(locals())
locals()[str_cmd](params)
mod("show", "hello world.")
输出如下:
{'str_cmd': 'show', 'params': 'hello world.', 'show': <function mod.<locals>.show at 0x000000000276DE58>}
show list params: hello world.
看到,局部变量中存在show这个函数,我们可以直接用locals()str_cmd进行参数调用,而不需要像c++中那样,通过switch进行转换