RAII

RAII (del inglés resource acquisition is initialization, que podría traducirse como «adquirir recursos es inicializar») es un popular patrón de diseño en varios lenguajes de programación orientados a objetos como C++ y Ada.La clase file puede ser usada así: Se puede comparar los siguientes ejemplos en C y C++: La versión en C requiere que el desarrollador libere la memoria en cada caso posible, a diferencia de la versión en C++.Una vez se abandona el ámbito de la sentencia with, Python llamará automáticamente al método __close__.Esto resulta muy útil, porque no sólo se llamará este método cuando finaliza el ámbito, sino que también se llamará cuando ocurra cualquier excepción.Por ejemplo, se presentan la siguiente forma de abrir un archivo:La cual, es funcionalmente parecida a:No obstante, si ocurriese (por algún motivo) una excepción en la ejecución del método write, el descriptor del archivo nunca sería cerrado.