1

我需要为串行设备打开一个端口,但如果它尚未打开或出现异常,它必须不断尝试打开门,直到它打开。一段时间后,Python 2.7.3 出现此错误:

“RuntimeError:调用 Python 对象时超出最大递归深度”

你能帮助我吗?

我的代码:

def opendisplay():
    try:
        lcd = serial.Serial(
        port='/dev/display', 
        baudrate=9600, 
        timeout=0,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS
        )
    except Exception, e:
        print "Error! can't connect to display Lcd check USB-Serial \n" + str(e)
        opendisplay()   
    return lcd

dsp=opendisplay()
4

1 回答 1

0

正如 Martin/Shadow 所说,循环而不是递归:

def opendisplay():
    while True:
        try:
            # Try to connect
            lcd = serial.Serial(...)
            return lcd
        except Exception as e:
            # Connection failed
            print "Error! etc"
            time.sleep(1)

如果您只想继续尝试一分钟,则可以for _ in range(60)改用

于 2013-02-11T09:21:41.967 回答