Vamos hacer una función de ejemplo llamada
1# example.py 2 3def iterar(num: int): 4 """ 5 Args: 6 num (int): cantidad de iteraciones 7 8 Returns: 9 int: conteo final de las iteraciones realizadas 10 """ 11 12 conteo = 0 13 14 for n in range(num): 15 conteo += 1 16 17 return conteo 18 19 20resultado = iterar(100) 21 22print(resultado) # salida: 100 23
En este ejemplo se pasa como argumento el número
Aumentando la velocidad con c++
Para potenciar nuestro código python con c++ y que aumente la velocidad de respuesta en el caso que el número de iteraciones supere las
1// iterar.cpp 2 3 4extern "C" 5{ 6 // declarada la función iterar como una función externa de C. 7 int iterar(int num) 8 { 9 int conteo = 0; 10 for (int i = 0; i < num; i++) 11 { 12 conteo++; 13 }; 14 15 return conteo; 16 } 17}
Entonces una vez que compilemos este código con el siguiente comando obtendremos un archivo de biblioteca compartida (DLL en Windows o SO en Linux) :
1$ g++ -shared -o iterar.so iterar.cpp
Utilizando la biblioteca compartida
Después de compilar el código y generar la biblioteca compartida, puedes utilizar el siguiente código de Python para cargar y utilizar la biblioteca compartida utilizando ctypes.
1# iterar.py 2 3import ctypes 4 5# Cargamos la biblioteca compartida 6lib = ctypes.CDLL("./iterar.so") # Ruta a la biblioteca compartida 7 8# Definimos los tipos de argumentos y el tipo de retorno de la función 9lib.iterar.argtypes = (ctypes.c_int ,) 10lib.iterar.restype = ctypes.c_int 11 12# Llamamos a la función iterar y obtenemos el resultado 13result = lib.iterar(99999999) 14print(result) # Salida: 99999999
Ahora esta vez cuando ejecutemos nuestro código python y pasemos como argumento un número tal como
Debe autenticarse
Para poder interactuar con todas las funcionalidades de nuestro sitio web, es necesario que se autentique con su cuenta de usuario