Articles of with statement

Mejora de un reemplazo directo para la statement “con” para Python 2.4

¿Puede sugerir una manera de codificar un reemplazo directo para la statement “con” que funcionará en Python 2.4? Sería un truco, pero me permitiría trasladar mi proyecto a Python 2.4 de forma más agradable. EDITAR: Se eliminó el bosquejo de metaclase irrelevante

¿Es posible tener una sentencia opcional con / as en python?

En lugar de esto: FILE = open(f) do_something(FILE) FILE.close() es mejor usar esto: with open(f) as FILE: do_something(FILE) ¿Qué pasa si tengo algo como esto? if f is not None: FILE = open(f) else: FILE = None do_something(FILE) if FILE is not None: FILE.close() Donde do_algo también tiene una cláusula “si el ARCHIVO es Ninguno”, […]

Python ‘con’ statement, ¿debería usar contextlib.closing?

from contextlib import closing def init_db(): with closing(connect_db()) as db: with app.open_resource(‘schema.sql’) as f: db.cursor().executescript(f.read()) db.commit() Esto es del tutorial de matraz Paso 3 ( http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit ). Y tengo un poco de curiosidad por la línea 4 de eso. ¿Debo importar y usar ese método ‘contextlib.closing ()’? Cuando he aprendido acerca de la statement, muchos […]

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, […]