我有多个不同的函数,还有一个字符串变量表示其中一个函数的名称。如何在不使用if的情况下调用该函数?
像这样:
def f1(): ...
def f2(): ...
def f3(): ...
def f4(): ...
x = "f1" # or "f2", "f3", or "f4"
然后我想调用一个和 x
的值相匹配的函数。
我想到的唯一方法就是用很多个 if
语句,但一旦函数变多,这样做会变得非常低效。
1 个回答
3
通常,你可以通过创建一个字典来实现这个功能,这个字典把函数的名字(字符串形式)和实际的函数对应起来:
table = {
"f1": f1,
"f2": f2,
# etc
}
然后你可以用 x
来查找字典中对应的函数,并执行它:
table[x]()