Novedades destacadas de Python 3.14

Strings plantilla, evaluación diferida de anotaciones, mensajes de error mejorados y una nueva interfaz de depuración son algunas de las novedades que llegan con Python 3.14.

Principales novedades de Python 3.14

1. Strings plantilla (template strings)

Los conocidos f-strings ahora tienen un sucesor más potente: los template strings, definidos en la PEP 750.

Un t-string permite aplicar funciones que operan no solo sobre el texto interpolado, sino también sobre la estructura del string.

Por ejemplo, podrías:

  • Limpiar automáticamente variables como user_name y user_locale de contenido HTML antes de mostrarlo.
  • Manipular por separado el texto interpolado ({user_name}) y el texto fijo (“My name is”).
  • Escribir motores de plantillas personalizados sin necesidad de bibliotecas externas como Jinja2.

Ejemplo:

t"My name is {user_name}, and I'm from {user_locale}"

2. Evaluación diferida de anotaciones

Antes, las anotaciones de tipo se evaluaban de inmediato, lo cual generaba problemas con referencias adelantadas:

class Thing:
    def frob(self, other: OtherThing):  # Error: OtherThing aún no está definido
        ...
class OtherThing:
    ...

Solución habitual: usar strings o from __future__ import annotations.

En Python 3.14, las anotaciones se almacenan en funciones especiales llamadas __annotate__ que permiten evaluación perezosa (lazy) en tiempo de ejecución o durante el análisis estático.

El módulo annotationlib facilita inspeccionar estas anotaciones.

Nota: El uso de from __future__ import annotations se mantendrá hasta aproximadamente 2029, pero está deprecado.

3. Mejores mensajes de error

Python 3.14 mejora aún más los mensajes de error:

Sugerencias para errores tipográficos:

forr a in b:
# SyntaxError: invalid syntax. Did you mean 'for'?

Mejoras adicionales:

  • Desempaquetado con número incorrecto de elementos.
  • elif mal colocado.
  • Mezcla incorrecta de asignación ternaria y flujo de control.
  • Cadenas mal cerradas.

4. Interfaz segura para depuración externa

Antes, era necesario iniciar Python con el depurador ya adjunto. Ahora, Python 3.14 permite:

  • Adjuntar un depurador a un proceso ya en ejecución usando pdb y su PID.
  • Evitar sobrecargas innecesarias y mejorar la estabilidad del entorno.
  • Crear herramientas de depuración más robustas sin modificar el intérprete de forma peligrosa.

5. Nueva API C para configurar el intérprete en tiempo de ejecución

Una nueva API en C permite:

  • Obtener y modificar la configuración del intérprete desde Python mismo.
  • Interactuar con el estado del intérprete sin acceder directamente a estructuras de C.
  • Usar herramientas de configuración de forma más sencilla y segura.

6. Captura de múltiples excepciones más simple

Antes:

try:
    func()
except (ErrorA, ErrorB):
    ...

Ahora:

try:
    func()
except ErrorA, ErrorB:
    ...

Ambas sintaxis son válidas, pero la nueva reduce la necesidad de paréntesis.

7. Compilación con tail-call para el intérprete CPython

Python 3.14 introduce un cambio interno en CPython que permite usar llamadas en cola (tail calls) en C, lo que:

  • Mejora levemente el rendimiento del intérprete.
  • No requiere cambios en tu código Python.

Aunque se esperaba una mejora del 9–15%, un bug en Clang/LLVM19 redujo la ganancia real a entre 3% y 5%.

Vistas: 0