我有一堆不同的函数,我知道一个 str 变量是其中一个函数的名称。如何在不使用 ifs 的情况下调用该函数?

问题描述 投票:0回答:1

(顺便说一句,在 Python 中)

像这样:

def f1(): ...
def f2(): ...
def f3(): ...
def f4(): ...

x = *f1, f2, f3 or f4*

然后我要调用与x的值匹配的函数。

我是 Python 初学者,所以也许有一个我不知道的简单解决方案。

我想到的唯一方法是使用大量的 if,但是一旦我获得很多函数,效率就会变得非常低。

python function variables
1个回答
0
投票

通常,您可以通过创建一个字典将函数的字符串名称映射到实际函数来完成此操作:

table = {
    "f1": f1,
    "f2": f2,
    # etc
}

然后你可以使用

x
在表中查找正确的函数并执行它:

table[x]()
© www.soinside.com 2019 - 2024. All rights reserved.