es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: CONTEXTMANAGER

¿Debe ocurrir la “apertura del trabajo” de un gestor de contexto en __init__ o en __enter__?

Encontré el siguiente ejemplo de un Administrador de Contexto para un objeto File: class File(object): def <strong>init</strong>(self, nombre_archivo, metodo): self.objeto_archivo = open(nombre_archivo, metodo) def <strong>enter</strong>(self): return self.objeto_archivo def <strong>exit</strong>(self, tipo, valor, traza): self.objeto_archivo.close() Aquí, el trabajo realizado por el administrador, que es abrir el archivo, ocurre en el método __init__. . . . Read more

Obteniendo diferentes valores para el tipo Decimal en el Contexto Local.

He escrito el siguiente código para determinar el tipo de decimal localcontext: print(‘tipo de decimal.localcontext():’, type(decimal.localcontext())) Salida: tipo de decimal.localcontext(): #ContextManager Sin embargo, el siguiente código está devolviendo una salida diferente para tipo: with decimal.localcontext() as ctx1: print(type(ctx1)) Salida: Mi pregunta es por qué el segundo fragmento de código está . . . Read more

¿Hay alguna versión de contextlib.contextmanager para clases en Python?

Utilizar generadores como bloques de construcción para los gestores de contexto es un enfoque interesante porque mantiene todo el estado en un solo lugar. Por ejemplo: @contextlib.contextmanager def manager(): state = get_state() try: yield f(state) except Exception: handle(state) finally: cleanup(state) Sin embargo, un patrón común es el siguiente: class Cliente(): . . . Read more