Una vez que sientas que sabes por qué es diferente Python 3 en comparación con Python 2, es hora de actualizar el código. Puedes elegir entre dos herramientas para transferir el código automáticamente: Futurize y Modernize. La herramienta que elija dependerá de qué tan parecido a Python 3 deseas que sea el código. Futurize hace todo lo posible para que existan modismos y prácticas de Python 3 en Python 2, como retroportando el tipo de bytes de Python 3 para que tenga paridad semántica entre las versiones principales de Python. Modernizar, por otro lado, es más conservador y apunta a un subconjunto de Python 2/3 de Python, confiando directamente en seis para ayudar a proporcionar compatibilidad. Como Python 3 es el futuro, podría ser mejor considerar Futurize para comenzar a adaptarse a las nuevas prácticas que Python 3 presenta y a las que aún no está acostumbrado.
Independientemente de la herramienta que elijas, actualizarán el código para que se ejecute en Python 3 y al mismo tiempo seguirán siendo compatibles con la versión de Python 2. Dependiendo de lo conservador que deseas ser, es posible que quieras ejecutar la herramienta en su conjunto de pruebas primero e inspeccionar visualmente la diferencia para asegurarte que la transformación sea precisa. Una vez que hayas transformado el conjunto de pruebas y verificado que todas las pruebas pasan como se esperaba, puedes transformar el código de tu aplicación sabiendo que cualquier prueba que falle es un error de traducción.
Por esa razón y muchas otras más no menos importantes, es que te recomendamos este curso de python profesional, el cual lo imparten de manera presencial o en linea, con instructores expertos en este lenguaje de programación.
Desafortunadamente, las herramientas no pueden automatizar todo para que el código funcione en Python 3, por lo que hay algunas cosas que deberás hacer la actualización a python 3 manualmente para obtener soporte completo, algunos de estos pasos son necesarios varían entre las herramientas. Lee la documentación de la herramienta que elijas usar para ver que corrija de forma predeterminada y qué puede hacer opcionalmente para saber qué se arreglará y qué puedes tener que arreglar por tu cuenta. Por ejemplo, usar io.open () sobre la función open () incorporada está desactivada de forma predeterminada en Modernizar. Sin embargo, afortunadamente, solo hay un par de cosas a tener en cuenta que pueden considerarse problemas importantes que pueden ser difíciles de depurar si no se vigilan.
En Python 3, 5/2 == 2.5 y no 2; toda división entre valores int da como resultado un flotante. En realidad, este cambio se ha planeado desde Python 2.2, que se lanzó en 2002. Desde entonces, se ha alentado a los usuarios a agregar la división de importación de __future__ a todos y cada uno de los archivos que usan los operadores / y // o que ejecuten el intérprete con la -Q Flag.
La actualización a python 3 se puede realizar a cualquier operador de división según sea necesario para usar // en la división de piso o continuar usando / y esperar un flotador. La razón por la que / no se traduce simplemente a // automáticamente es que si un objeto define un método __truediv__ pero no __floordiv__, entonces el código comenzaría a fallar (por ejemplo, una clase definida por el usuario que usa / para significar alguna operación pero no // por lo mismo o nada).
Diseño Web Grupo Codesi