我在返回我在report
函數內部構建的字典時遇到了一些麻煩。我知道我實際上調用了decode
函數。我無法弄清楚如何解決這個問題。一切正常。代碼做它應該做的。但後來,我加入這本字典,我想回國,所以我可以在script_A.py
返回詞典
調用代碼中使用它(sript_A.py):
self.decoder = Decoder(Frame)
recvDict = self.decoder.decode(self.message)
print type(recvDict) # this returns <type 'NoneType'>
調用代碼(script_B.py):
class Decoder(object):
def decode(self, message):
processIncomingPacket(message, self.report)
def report(self, message):
my_dict = {'a': '123', 'b': '456'}
return my_dict
其中processIncomingPacket
定義一些其他的腳本:
class Some_class(object):
processIncomingPacket(self, data, callback):
raise NotImplementedException("not implemented")
更新:
的實施processIncomingPacket
:
def processIncomingPacket(self, data, callback):
_logger.debug(" ".join([hex(ord(x)) for x in data]))
self.addToFrame(data)
while self.isFrameReady():
if self.checkFrame():
result = self.decoder.decode(self.getFrame())
if result is None:
raise PacketIOException("Unable to decode request")
self.populateResult(result)
self.advanceFrame()
callback(result) # defer or push to a thread?
else: break
它看起來像你需要做的:'返回processIncomingPacket(消息,self.report)''的功能decode'內。 – iCodez
@iCodez我試過了,並且不起作用:( – gspt
@vgo你可以分享'processIncomingPacket'的* actual *實現嗎?具體地說它執行'callback'的地方? – dano