파이썬 새내기 질문 : 클래스 메서드 인 경우 콜백 메서드 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')
컨텍스트 관리자로 사용하려고합니까? 그러면 그것들은'__enter__'과'__exit__'이어야합니다. 그렇지 않으면 어떤 코드가'enter'를 호출합니까? – tdelaney
그들은 있습니다. 게시물에서 수정 됨. – wackazong
예전 스타일의 클래스에는 문제가있을 수 있습니다. 파이썬 2.7에서'class Receiver (object) :'클래스를 선언하십시오. – tdelaney