Articles of with statement

Cambiando temporalmente el valor de una variable en Python

Python 3.4 proporciona esta herramienta ingeniosa para redireccionar temporalmente la salida estándar: # From https://docs.python.org/3.4/library/contextlib.html#contextlib.redirect_stdout with redirect_stdout(sys.stderr): help(pow) El código no es muy complicado, pero no me gustaría escribirlo una y otra vez, especialmente porque se lo ha pensado para que vuelva a ingresar: class redirect_stdout: def __init__(self, new_target): self._new_target = new_target # We use […]

StringIO y compatibilidad con la statement ‘with’ (administrador de contexto)

Tengo un código heredado con una función heredada que toma un nombre de archivo como argumento y procesa el contenido del archivo. A continuación se muestra un fax de trabajo del código. Lo que quiero hacer es no tener que escribir en el disco con algo de contenido que genero para usar esta función heredada, […]

Con la statement en Python, se devuelve el objeto Ninguno aunque el método __init__ funcione

Para una clase DB con el siguiente método de inicio : class DB: def __init__(self, dbprops): self.dbprops = dbprops self.conn = self.get_connection(self.dbprops) debug(“self.conn is %s” %self.conn) def __enter__(self): pass def __exit__(self, exc_type, exc_val, exc_tb): if not self.conn is None: self.close() Y para un método cliente invocándolo de la siguiente manera: with DB(self.dbprops) as db: if […]

con statement de trabajo en clase

{class foo(object): def __enter__ (self): print(“Enter”) def __exit__(self,type,value,traceback): print(“Exit”) def method(self): print(“Method”) with foo() as instant: instant.method()} Ejecutar este archivo py la consola muestra estos mensajes: Enter Exit instant.method() AttributeError: ‘NoneType’ object has no attribute ‘method’ incapaz de encontrar métodos?

Archivo abrir y cerrar en python

He leído que cuando el archivo se abre con el siguiente formato with open(filename) as f: #My Code f.close() No se requiere el cierre explícito del archivo. ¿Alguien puede explicar por qué es así? Además, si alguien cierra explícitamente el archivo, ¿tendrá algún efecto no deseado?

El objective de la statement `with` de Python es inesperadamente Ninguno

Parece que no entiendo algo con — el python with statement. Considera esta clase: class test(object): def __enter__(self): pass def __exit__(self, *ignored): pass ahora, cuando se usa with , como en with test() as michael: print repr(michael) Espero algún resultado como . Pero no tengo ninguno . Algo malo aquí? Cualquier sugerencia ayudaría. (Estoy usando […]

Implementando el uso de ‘with object () como f’ en la clase personalizada en python

Tengo que abrir un objeto similar a un archivo en python (es una conexión en serie a través de / dev /) y luego cerrarlo. Esto se hace varias veces en varios métodos de mi clase. Cómo lo estaba haciendo fue abrir el archivo en el constructor y luego cerrarlo en el destructor. Sin embargo, […]

procesamiento de archivos línea por línea, for-loop vs with

Estoy tratando de entender las compensaciones / diferencias entre estos y las formas de abrir archivos para el procesamiento línea por línea. with open(‘data.txt’) as inf: for line in inf: #etc vs for line in open(‘data.txt’): # etc Entiendo que usar with asegura que el archivo se cierre cuando se sale de “with-block” (suite?) (O […]

¿Es Python * con * instrucción exactamente equivalente a un bash – (excepto) – finalmente bloquear?

Sé que esto fue ampliamente discutido, pero todavía no puedo encontrar una respuesta para confirmar esto: es la sentencia with idéntica a llamar al mismo código en un bloque try – (excepto) -finally, donde cualquiera que se defina en la función __exit__ de El gestor de contexto se coloca en el bloque finalmente? Por ejemplo, […]

¿Cómo verificar si un objeto se crea con la statement `with`?

Me gustaría asegurarme de que la clase solo sea instanciada dentro de una statement “con”. es decir, este está bien: with X() as x: … y esto no es x = X() ¿Cómo puedo asegurar tal funcionalidad?