如果是类方法,则不调用回调

2024-10-02 00:35:46 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手问题:如果回调方法handlePackets是一个类方法,则永远不会被调用。如果它不在课堂上,它会很好地工作。我能做什么?在

class Receiver:

    def __enter__(self):
        self.serial_port = serial.Serial('/dev/ttyUSB0', 115200)
        self.xbee = ZigBee(self.serial_port, escaped=True,    callback=self.handlePackets)
        Logger.info('Receiver: enter')
        return self

    def __exit__(self ,type, value, traceback):
        Logger.info('Receiver: exit')
        self.serial_port.close()

    def handlePackets(data):
        Logger.info('Receiver: packet incoming')

Tags: 方法selfinfoportdefexitseriallogger
2条回答

我不得不将self作为第一个参数添加到packetHandler。这是所有类方法所必需的,但我忘了把它放进去。在

我敢打赌,这是因为无论是从ZigBee内调用回调的,都会默默地失败。解释器使用2个参数调用函数,但正如您定义的那样,它只需要一个参数。在

def handlePackets(self, data):
                 #^^^^

相关问题 更多 >

    热门问题