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_nameyuser_localede 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 annotationsse 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.
elifmal 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
pdby 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%.