在递归函数中定义内部函数是个坏主意吗?

roo*_*kie 7 python recursion

我有一些递归回溯代码,在测试之前测试选择是否有效.将is_legal_choice函数嵌套在递归solve函数中是不是一个坏主意?每次solve调用函数时都会重新定义这个内部函数吗?

kin*_*all 5

是的,每次调用函数时都会重新定义内部函数.但是,它没有你想象的那么糟糕; Python代码被解析为一次代码对象,并且每次只重新构建函数对象(用作代码对象的一种包装器).