[ Foro de Python ]

Ejecutar una función alojada en una tupla.

19-Jan-2022 23:45
Roberto Daniel Virgili
0 Respuestas

Hola gente ¿Cómo están?.
Bueno explico lo que deseo lograr, quiero automatizar un menú(una plantilla) y lo que me pasa es que no se como obviar el “if opc == 1: etc. etc.” concretamente hay mane-ra de ejecutar una función(esta en otro archivo) desde una tupla…

Muestro lo que hice:
---------------------------------------------------------------------------------------------------


def menu(tuplaMenu, tuplaFunciones):
    print(' ================== Menú de opciones ================== \n')
    total = len(tuplaMenu)
    indice = 0
    for menu in tuplaMenu:      
        print(f' {str(indice +1)} - {menu.capitalize()}')
        indice += 1
    while True:
        while True:
            try:
                opc = int(input('\n Ingrese opción...: ').strip())
            except:
                print('\n La opción ingresada no es válida...')
                input(' Pulse <enter> para intentarlo nuevamente.')
        
            if opc > 0 and opc <= total: 
                break
            else:
                print('\n La opción ingresada no es válida...')
                input(' Pulse <enter> para intentarlo nuevamente.')
         
        if opc == 5:
            break
        miFuncion = tuplaFunciones[opc] 
        final = getattr(¿...?) 

def agregar():
    print('ok')

def main():
    tuplaMenu = ('agregar', 'buscar', 'modificar', 'borrar', 'finalizar')
    tuplaFunciones = (' ', 'agregar.agregarCalculo', 'buscar.encontrar()', 'modificar_borrar.modificar_borrar'\
                      , 'modificar_borrar.modificar_borrar')
    menu(tuplaMenu, tuplaFunciones)
    

if __name__ == "__main__":
    main()


---------------------------------------------------------------------------------------------------
Saludos a todos y gracias…




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)