在函数名称中使用变量值

时间:2019-09-02 12:43:12

标签: python python-3.x

我确信我在某处读到了有关此内容的信息,但不记得详细信息。 我的问题是这样的:

我有两个功能

def go_foo():
    print("foo")

def go_bar():
    print("bar")

和此变量:

name = "foo"

我想使用name来调用这样的函数之一:

go_{name}()

#output in this case would be foo

如何实现?

2 个答案:

答案 0 :(得分:2)

您也可以使用locals()

本地符号表存储与程序的本地范围有关的所有信息,并可以使用locals()方法在Python中进行访问。

def go_foo():
    print("foo")

def go_bar():
    print("bar")

name = "foo"

locals()['go_'+name]()

答案 1 :(得分:1)

eval('go_'+name)()

许多人当然会告诉您这是危险代码,如果name变量的值可以更改,则容易注入代码。您越不理those那些人,您的境况越好(通常)。尤其是在生产环境中通常不会这样做。