Python数组表现得很奇怪

时间:2014-11-05 16:14:57

标签: python serial-port

我正在使用pyserial从串口读取数据,有时我收到的数据表现出意外

这是重要的代码

def getResponse():
    while ('\r' != rbuf[-1]):
        rbuf += s.read(s.inWaiting())
        print("b " + binascii.hexlify(rbuf))

    rbuf = rbuf.split('\r')
    rbuf = rbuf[:-1]
    print rbuf
    for char in rbuf:
        if(char == AFTER):
            print('a')
        elif(char == 'W'):
            print("Writing to the file")
        elif(char != ''):
            print char
            return char
    getResponse()

我知道这不是编写代码的最佳方式,但有些事情会发生。

当我收到序列[' a',' A']时,返回的值最终为NONE。(我在代码中的其他地方检查了打印语句

当我收到[' W'' a' A' A']或我收到[' A']时,这种情况不会发生]

我想出了一个解决方案,但我对此非常好奇!!

谢谢

1 个答案:

答案 0 :(得分:2)

我不完全理解您的代码,但我强烈怀疑您希望在函数结束时return递归getResponse调用的结果。如果是这样,您需要明确return。只是打电话给这个功能不会为你做。

getResponse()

变为

return getResponse()