我必须在 python 中打开一个类似文件的对象(它是通过 /dev/ 的串行连接)然后关闭它。这在我班的几种方法中多次完成。我的做法是在构造函数中打开文件,然后在析构函数中关闭它。不过我遇到了一些奇怪的错误,我认为这与垃圾收集器等有关,我仍然不习惯不知道我的对象何时被删除=\
我这样做的原因是因为tcsetattr
每次打开它时我都必须使用一堆参数,而且在所有地方都这样做很烦人。所以我想实现一个内部类来处理所有这些,所以我可以用它来做
with Meter('/dev/ttyS2') as m:
我在网上看,我找不到关于如何实现with
语法的真正好的答案。我看到它使用__enter__(self)
and__exit(self)__
方法。但是我所要做的就是实现这些方法并且我可以使用 with 语法吗?或者还有更多?
是否有一个关于如何执行此操作的示例或一些关于它如何在我可以查看的文件对象上实现的文档?