我必须在 python 中打开一个类似文件的对象(它是通过/dev/的串行连接) ,然后关闭它。这在我的类的几个方法中进行了多次。我是这样做的: 在构造函数中打开文件,然后在析构函数中关闭它。虽然我得到了奇怪的错误,我认为这与垃圾收集器等,我仍然不习惯不知道确切的时候,我的对象被删除 =
我之所以这样做是因为每次打开 tcsetattr
时,我必须使用带有一大堆参数的 tcsetattr
,而且这样做很烦人。因此,我想实现一个内部类来处理所有这些问题,这样我就可以使用它来完成
with Meter('/dev/ttyS2') as m:
我在网上查找,但是我找不到一个关于 with
语法是如何实现的好答案。我看到它使用 __enter__(self)
和 __exit(self)__
方法。但是我需要做的就是实现这些方法并且使用 with 语法吗?还是还有别的原因?
有没有关于如何做到这一点的例子,或者有关于如何在文件对象上实现这一点的文档,我已经看过了?