Tengo que abrir un objeto similar a un archivo en python (es una conexión en serie a través de/dev /) y luego lo cierro. Esto se hace varias veces en varios métodos de mi clase. Lo que estaba haciendo era abrir el archivo en el constructor y luego cerrarlo en el destructor. Aunque estoy obteniendo errores extraños y creo que tiene que ver con el recolector de basura y tal, todavía no estoy acostumbrado a no saber exactamente cuándo se están eliminando mis objetos = \Implementación del uso de 'with object() como f' en clase personalizada en python
La razón por la que estaba haciendo esto es porque tengo que usar tcsetattr
con un montón de parámetros cada vez que lo abro y se pone molesto haciendo todo eso por todos lados. Así que quiero para implementar una clase interna para manejar todo eso para que pueda usarlo haciendo
with Meter('/dev/ttyS2') as m:
que estaba buscando en línea y no pude encontrar una buena respuesta sobre cómo se implementa la sintaxis with
. Vi que usa los métodos __enter__(self)
y __exit(self)__
. Pero, ¿es todo lo que tengo que hacer para implementar esos métodos y puedo usar la sintaxis? ¿O hay más?
¿Hay algún ejemplo sobre cómo hacer esto o alguna documentación sobre cómo se implementa en objetos de archivos que ya puedo ver?
'def __enter __ (self): return self' si quiere una referencia a' Meter' en el bloque with. – Morgoth