根据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()
)是用于关闭串口的最合适的方法?
如果我们看看pyserial source,我们会看到:
class SerialBase(io.RawIOBase):
啊哈!让我们来看看io.RawIOBase:
原始二进制I / O的基类。它继承了
IOBase
。没有公共构造函数。
好。在__del__
寻找IOBase
我们看到:
__del__()
准备破坏物体。IOBase
提供了此方法的默认实现,该实现调用实例的close()
方法。
您可以使用close()
或del
或with
-context - 它们都关闭端口。