假设开发了一个应在 Windows 和 Linux 上运行的应用程序,并且该应用程序使用 pyserial 包,该包在 Linux 中安装时提供类型
serial.serialposix.Serial
,在 Windows 中安装时提供类型 serial.serialwin32.Serial
。是否可以注释变量类型,以便 linter 根据操作系统知道使用哪种类型?
import serial
serial_port: serial.serialposix.Serial = serial.Serial('/dev/ttyUSB0') # the linter complaints on Windows
serial_port: serial.serialwin32.Serial = serial.Serial('COM1') # the linter complaints on Linux
serial_port: serial.serialposix.Serial | serial.serialwin32.Serial = serial.Serial(f"{name}") # the linter complaints on Windows and on Linux
您可以使用基类
serial.serialutil.SerialBase
。 大多数方法都是从该类继承的。
from serial import SerialBase
serial_port: SerialBase = serial.Serial('/dev/ttyUSB0')
serial_port: SerialBase = serial.Serial('COM1')