Gestores con contextlib en Python
Crear gestores de contexto sin escribir una clase.
import contextlib
@contextlib.contextmanager
def etiqueta(nombre):
print(f"<{nombre}>")
try:
yield nombre
finally:
print(f"</{nombre}>")
with etiqueta("article") as exterior:
with etiqueta("p"):
print("hola adentro")
with contextlib.suppress(FileNotFoundError):
open("missing.txt")
Cómo funciona
@contextmanagerconvierte un generador en un bloquewith.- El código antes de
yieldes preparación; el de después, limpieza. suppressse traga en silencio una excepción elegida.
Palabras clave y builtins usados aquí
asdeffinallyopenprinttrywithyield
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 286
- Tokens
- 77
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 46 segundos.
Paso 1 de 5 en Protocolos y gestores de contexto; paso 15 de 53 en Python pythónico.