En python hay otra forma más elegante de hacerlo.
class database_connection:
def __enter__(self):
print("Open database connection")
return 1
def __exit__(self, type, value, traceback):
print("Close database connection")
with database_connection() as db:
print(db)
Al definirnos una clase con los métodos __enter__ y __exit__ y ejecutarla en un bloque with se nos asegura que:
1) Al entrar al bloque se ha ejecutado el método __enter__.
2) Tanto si hay un error en el bloque with como si termina correctamente, los recursos serán liberados (llamada a la función __exit__).
3) Opcionalemente se puede devolver un valor para usarlo dentro del bloque (en este caso db), aunque no es obligatorio.
0 comentarios:
Publicar un comentario