根据documentation,类serial.Serial()
具有以下方法。
close()
Close port immediately.
__del__()
Destructor, close port when serial port instance is freed.
我想知道何时应该使用close()
和__del__()
?例如,我有一个GUI,它使用分配的端口创建了serial.Serial()
的实例。根据文档,当serial.Serial()
的实例打开时,分配的端口将打开。现在,当我终止GUI时,我是否正确地说__del__()
(而不是close()
)是关闭串行端口最合适的方法?
答案 0 :(得分:1)
如果我们查看pyserial source,将会看到:
class SerialBase(io.RawIOBase):
啊哈!让我们来看看io.RawIOBase:
原始二进制I / O的基类。它继承了
IOBase
。没有公共构造函数。
好。在__del__
中寻找IOBase
,我们看到:
__del__()
准备销毁对象。IOBase
提供了此方法的默认实现,该方法调用实例的close()
方法。
您可以使用close()
或del
或with
上下文-它们都关闭端口。