Gerente de contexto de Python

Gerente de contexto de Python

Gestión de recursos

El uso de recursos como manipulaciones de archivos o acceso a la base de datos es bastante frecuente en todos los lenguajes de computadora. Sin embargo, hay un número finito de estos recursos. Tenemos que asegurarnos de que la restauración de dichos recursos después de su uso sea el obstáculo clave. Cuando no se dan, se producirá una fuga de recursos, y se ralentiza o incluso daña la computadora. La capacidad de los usuarios para acumular y desglosar recursos reales será masivamente valiosa. Los gerentes de contexto de Python que hacen que sea más fácil manejar los recursos de manera efectiva podría usarse para lograr esto.

Gerente de contexto para la gestión de recursos

Será difícil cerrar un archivo inmediatamente cuando un código de código arroje un error o tenga un mecanismo complicado, incluidas muchas vías devueltas. Try-excepcion-finalmente se utiliza típicamente en ciertos lenguajes de programación para asegurar que. De hecho, el recurso de archivo se termina después de usarlo, aunque hay un error. Los gerentes de contexto, un módulo de Python, habilitan la gestión de recursos simplemente. El término "con" se utilizará. Esto creará un objeto que administra el contexto hasta que se haya analizado. Se utilizarían clases o procesos con modificadores para crear gerentes de contexto. Discutamos más gerente de contexto.

Ejemplo no 1

Mientras utiliza clases para construir gerentes de contexto, asegúrese de que la clase contenga las funciones como Enter () y salir (). Las actividades de limpieza se llevan a cabo a través de la función EXIT (), que no devolverá nada más que la función Enter () proporciona el recurso que requiere desarrollo. Para analizar el marco de generar gerentes de contexto con clases, primero desarrollemos una clase básica llamada ContextManager, como se ve aquí:

clase contextManager ():
def __init __ (self1):
imprimir ('la función init se llamará')
def __enter __ (self2):
Imprimir (se llamará la función de ingresar ')
regresar self2
def __exit __ (self2, exc_type, exc_value, exc_traceback):
imprimir ('la función de salida se llamará')
con contextManager () como gerente:
Imprimir ('Aquí está la declaración')


Al comienzo del código, creamos una clase denominada ContextManager. Dentro de esta clase, definimos una función init (). Luego utilizamos el método print () para mostrar la declaración "La función init se llamará". En la siguiente línea, se definirá otra función, enter (),. Esta función contiene "self2" como argumento. Llamaremos al método print () para imprimir la declaración "Se llamará a la función de ingresar". Entonces se llama la declaración de devolución.

Definamos una nueva función llamada Exit (). Esta función tiene cuatro argumentos diferentes, que contienen el valor de self2, exc_type, exc_value y exc_traceback. Para esta función, la instrucción print () también se está aplicando para mostrar la línea "La función de salida se llamará". Por último, crearemos un administrador de objetos de la clase ContextManager. Empleamos una instrucción impresa () que muestra el mensaje "Aquí está el con la declaración".


Una instancia de contextManager se genera en este ejemplo. El atributo después del término "gerente" recibe esta asignación. Las siguientes funciones se llevan a cabo secuencialmente al ejecutar el código mencionado anteriormente:

  • en eso()
  • ingresar()
  • Un cuerpo de declaración que contiene código dentro de una sección "con".
  • salida(). Los argumentos de esta función se están utilizando para controlar errores.

Ejemplo no 2

Usemos el enfoque anterior para construir una clase que ayude a administrar recursos de archivo. La clase Filemanager facilita el acceso, la escritura o la lectura y la terminación de archivos.

Clase Filemanager ():
def __init __ (self1, nombre de archivo, modo):
Self1.nombre de archivo = nombre de archivo
Self1.modo = modo
Self1.archivo = ninguno
def __enter __ (self2):
Self2.Archivo = Open (self2.nombre de archivo, self2.modo)
regresar self2.archivo
def __exit __ (self2, exc_type, exc_value, exc_traceback):
Self2.archivo.cerca()
con Filemanager ('Hola.txt ',' w ') como f:
F.escribir ('prueba')

imprimir (F.cerrado)


En primer lugar, creamos una clase conocida como "Filemanager". Ahora definimos diferentes funciones relacionadas con esta clase. Primero, definimos la función de init (). Dentro de esta función, pasamos tres argumentos diversos. El primer parámetro es "self1", el segundo parámetro muestra el nombre del archivo "nombre de archivo", y el último parámetro muestra el "modo" del archivo. Creamos un objeto denominado nombre de archivo y establecemos su valor igual al nombre original del archivo requerido.

Luego creamos otro objeto llamado "modo", y aquí especificamos el formato del archivo definido. Declaramos el último objeto llamado "archivo", y ahora el valor de este objeto se establecerá como "ninguno". Inicializamos otra función Enter (). Proporcionamos el valor de "self2" como argumento para esta función. Aquí llamamos al método Open () para abrir el archivo especificado. Esta función contiene dos parámetros que incluyen el nombre del archivo que queremos abrir y el modo de abrir el archivo. El parámetro de modo muestra para qué propósito queremos abrir el archivo. El modo del archivo será "escribir" o "leer".

Luego utilizamos la declaración de devolución. En el siguiente paso, queremos salir de ese archivo. Entonces aplicamos el método Exit (). Pasaremos cuatro argumentos a esta función. Luego utilizamos el método Filemanager (). Cargamos un archivo usando esta función. Dentro de esta función, especificamos el texto que queremos escribir en el archivo. Y también, especificamos el modo del archivo "W". Ahora aplicamos el método Write (). Para terminar el código, empleamos el método print (). Dentro de esta función, utilizamos una declaración cerrada para cerrar el archivo.


Al utilizar el administrador de contextores, administraremos archivos. Cuando se implementa el bloque "Con", los pasos apropiados tienen lugar uno tras otro:

  • Cada vez que se llama a la función init (), se construye una instancia de Filemanager, saludar.txt como el título del archivo y "w" como el formato de la FI • El hola.El archivo txt se accede en formato de escritura por la función Enter (), que también devuelve una clase de archivo al atributo F.
  • El archivo contiene el contenido "Prueba."
  • Cuando se termina con la sección con la sección, la función EXIT () maneja el cierre del archivo. Porque el Filemanager ha gestionado de manera efectiva la terminación del archivo, que normalmente se hubiera requerido que se manejara explícitamente, cuando se imprime (F.cerrado) se ejecuta, el resultado será cierto.

Conclusión

En este artículo, hemos hablado sobre el gerente de contexto de Python. Podemos asignar y utilizar los recursos en los momentos específicos que elegimos debido a los gerentes de contexto. La expresión "con" es la ilustración más utilizada de un administrador de contexto. Cada vez que queremos combinar dos eventos relacionados e implementar un código entre ellos, utilizamos gerentes de contexto. Ejecutamos un ejemplo en el que demostramos la creación de un gerente de contexto. Manipulamos archivos mediante el uso de un administrador de contexto y con comandos.