以下片段来自pyusb tutuorial。它被用来查找所有连接的打印机:
import usb.core
import usb.util
import sys
class find_class(object):
def __init__(self, class_):
self._class = class_
def __call__(self, device):
# first, let's check the device
if device.bDeviceClass == self._class:
return True
# ok, transverse all devices to find an
# interface that matches our class
for cfg in device:
# find_descriptor: what's it?
intf = usb.util.find_descriptor(
cfg,
bInterfaceClass=self._class
)
if intf is not None:
return True
return False
printers = usb.core.find(find_all=1, custom_match=find_all(7))
这个类似乎有多个点,它返回一个布尔值。发送了多少退货?
我也无法理解此代码如何搜索连接到系统的所有打印机。这段代码中让我无法理解的内容是:
是
device
列表/元组吗?如果是,此代码如何通过if device.bDeviceClass == self._class:
仅执行一次来检查所有设备?这一行发生了什么:
self._class = class_
为什么该类
find_class
从未实例化printers = usb.core.find(find_all=1, custom_match=find_all(7))
如果您曾在 pyusb/任何 USB 程序上工作过,请告诉我如何。