例外和Python

Dav*_*vid 2 python exception

我是Python的新手,我有一个问题,我认为我已经解决但它一直在发生.我有类似以下内容.

def funct1()
    dosomestuff
    funct2()

def funct2()
    dosomestuff
    funct3()

def funct3()
    dosomestuff
    funct1()

def exceptionRecovery()
    checksomethings
    funct1() or funct2() or funct3()

try: 
    funct1()
except:
    exceptionRecovery()
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,这个程序永远不应该退出.exceptionRecovery应该检查几个东西并根据各种事物的状态启动正确的函数.但是,我仍然在程序中崩溃,这让我感到困惑.有人可以告诉我我做错了什么吗?

Gle*_*eno 9

你是否有机会获得stackoverflow异常:)?由于python没有尾调用递归优化,因此无法无限地嵌套函数调用.因此,您应该考虑将逻辑置于无限循环中.

while True:
    //logic to call func1, 2, 3 or whatever
Run Code Online (Sandbox Code Playgroud)


Joh*_*rth 7

你的程序本质上是一个无限递归的程序.你正在以极端的偏见吹走Python的调用栈.