Devo aprire un oggetto simile a file in python (è una connessione seriale tramite/dev /) e quindi chiuderlo. Questo è fatto più volte in diversi metodi della mia classe. Come stavo facendo era aprire il file nel costruttore e quindi chiuderlo nel distruttore. Sto ottenendo strani errori e penso che abbia a che fare con il garbage collector e così, non sono ancora abituato a non sapere esattamente quando i miei oggetti vengono cancellati = \Implementazione dell'uso di "con object() come f" nella classe personalizzata in python
Il motivo per cui stavo facendo questo è perché devo usare tcsetattr
con una serie di parametri ogni volta che lo apro e diventa fastidioso fare tutto ciò dappertutto. Quindi voglio implementare una classe interna per gestire tutto ciò che così posso usarlo facendo
with Meter('/dev/ttyS2') as m:
che cercavo in linea e non sono riuscito a trovare una buona risposta su come è implementata la sintassi with
. Ho visto che utilizza i metodi __enter__(self)
e __exit(self)__
. Ma tutto ciò che devo fare è implementare questi metodi e posso usare la sintassi? O c'è dell'altro?
Esiste un esempio su come eseguire questa o alcune documentazioni su come è già stato implementato su oggetti file che posso visualizzare?
'def __enter __ (self): return self' se si desidera un riferimento a' Meter' nel blocco with. – Morgoth