在使用Python开发的过程中,难免会用到递归函数。但是,递归函数的返回值有时会出现意想不到的情况。这是一个例子:>>>deffun(i):...i+=1...ifi<5:...fun(i)...else:...returni...>>>r=fun(0)>>>print(r)比如上面的代码,乍一看还不错,但是返回值并不是我们预期的5,而是None。>>>print(r)None解决这个问题也很简单,就是在执行递归调用的时候加上return语句。修改后的代码如下:>>>deffun(i):...i+=1...ifi<5:...returnfun(i)...else:...returni。..>>>r=fun(0)>>>print(r)5现在输出符合我们的预期。最后,如果想了解这背后的底层原理,可以看看函数调用栈相关的资料,这里就不做过多介绍了。本文就这些啦,如果觉得有用,请点赞转发关注,谢谢。推荐阅读:计算机经典书籍技术博客:后端开发硬核技术干货,包括Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux等GoProgrammer:Go学习路线图,包括基础专栏、进阶专栏、源码阅读、实战开发、面试题、必读清单等一系列资源。面试题汇总:包括Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等常见考题。
