【发布时间】:2022-02-19 02:11:20
【问题描述】:
我想尝试优化代码,但我的想法行不通。
我会从用户那里收到一个值,这个值是一个数字,这个数字我会选择一个要执行的函数。所以我创建了一个具有相同数字的对象,值是应该调用的函数的名称。我在这里尝试了几种方法,但都没有奏效,有人知道该怎么做吗?马上编码
def funcaoSerExecutada():
modules = {
1: "funcao1()",
2: "funcao2",
3: "funcao3",
4: "funcao4",
5: "funcao5",
}
userValue = 0
# Texto que será exebido na tela
print("===============================")
print("Escolha o módulo")
print("===============================")
print("1 - Estrutura: modelo_cantacom_vitrine_destinos_mod019_V3")
print("2 - Estrutura: cantacom_n_mod072_aereas_100_V2;")
print("3 - Estrutura: canta_destinos_vitrine_novo_modelo_estrutura;")
print("4 - Estrutura: canta_mod050_estrutura; Obs: Valores apenas para Clube Smiles")
print("5 - CANTACOM_100MILHAS-SMILESANDMONEY-VERTICAL_V1")
print("===============================")
# Pedir para o usuário digitar um valor, verificar se é um número e se essa opção digitada existe
while (isinstance(userValue, str) or not userValue in modules):
try:
userValue = int(input("Digite um número: "))
if(not userValue in modules):
print("===============================")
print("Essa opção não existe! Escolha uma das opções acima!")
print("===============================")
except:
print("===============================")
print("Ops, digite um número!")
print("===============================")
def funcao1():
print("oi")
def runFunction():
modules[userValue]
runFunction()
【问题讨论】:
-
这能回答你的问题吗? Python: call a function from string name
-
这些名称与提示文本有何关系?例如,我们如何从提示“Estrutura: modelo_cantacom_vitrine_destinos_mod019_V3”中得到“funcao1”。是否有一个名为 modelo_cantacom_vitrine_destinos_mod019_V3 的函数,是您要调用的函数吗?
-
另外,发布一个运行示例 - 目前尚未定义所有要调用的函数。
-
函数还没有创建,我只是在测试逻辑
标签: python python-3.x