Мне нужно открыть файловый объект в python (это последовательное соединение через / dev /), а затем закрыть его. Это делается несколько раз в нескольких методах моего класса. Я БЫЛ это делал, открывая файл в конструкторе, а затем закрывая его в деструкторе. Однако у меня возникают странные ошибки, и я думаю, что это связано со сборщиком мусора и т.п., я до сих пор не привык не знать точно, когда мои объекты удаляются = \
Причина, по которой я это делаю, состоит в том, что Мне приходится использовать tcsetattr
с кучей параметров каждый раз, когда я открываю его, и мне становится неприятно делать все это повсюду. Итак, я хочу реализовать внутренний класс для обработки всего этого, чтобы я мог использовать его, выполняя
с Meter ('/ dev / ttyS2') как m:
Я искал в Интернете и не смог найти действительно хороший ответ на вопрос, как реализован синтаксис с
. Я видел, что он использует методы __ enter __ (self)
и __ exit (self) __
. Но все ли, что мне нужно сделать, реализовать эти методы и можно ли использовать синтаксис with? Или есть еще кое-что?
Есть ли пример того, как это сделать, или какая-то документация о том, как это уже реализовано на файловых объектах, на которые я могу посмотреть?