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