gpt4 book ai didi

Python - 根据变量触发特定函数

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:40 25 4
gpt4 key购买 nike

假设我有一个 main.py 和 26 个名为 A.py 到 Z.py 的附加 Python 文件。
这 26 个文件都包含一个名为 functionA(),functionB()...functionZ() 的函数我有一个变量,我们称它为“var”,并希望根据变量触发正确的函数。现在我的 main.py 代码如下所示:

from A import functionA
from B import functionB
.
.
.
from Z import functionZ

var = "N";

if var == "A":
functionA()
elif var == "B":
functionB()
.
.
.
elif var == "Z":
functionZ()

然而,实际代码不会只有 26 个函数,而是超过 100 个。
我听说 if..elif..elif 比 switch var: 的性能效率更高。但是,有什么方法可以根据变量触发 functionvar() 而无需一一迭代所有变量?如果不是,if...elif...elif...else 是最有效的方法吗?

最佳答案

如果你必须遵守这个结构,你可以使用importlib。它不是很透明,但可以在少量行中实现您想要的,并且不需要文件顶部的所有导入。

import importlib

var = 'A'

module = importlib.import_module(var) # imports module A

f_name = f"function{var}" # = 'functionA'

f_to_call = getattr(module, f_name) # the function as a callable

result = f_to_call() # calls A.functionA()

关于Python - 根据变量触发特定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58555687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com