这是函数自调用,就是“闭包”,也就是递归函数。递归函数有一个特性:就是可以保存每一次的递推值,返回阶段取出值。您的打印输出语句在自调用之后,是在返回阶段打印,到0才开始打印,最后返回5。所以是012345。
如果打印输出语句在“闭包调用”之前,第一次闭包调用前k值为5,第二次为4,……。所以是543210。
打印输出语句在“闭包”调用之后
python 代码
#!/sur/bin/nve python
# coding: utf-8
def fun(k):
#print(k) # 打印
if k > 0:
fun(k-1) # 自调用。
print(k) # 打印
if __name__ == '__main__':
w = 5
fun(w) # 主函数调用。
#!/sur/bin/nve python
# coding: utf-8
def fun(k):
print(k) # 打印
if k > 0:
fun(k-1) # 自调用。
#print(k) # 打印
if __name__ == '__main__':
w = 5
fun(w) # 主函数调用。
您可以点击下面的链接,了解更多闭包调用——
就是简简单单的递归啊!调用函数fun会调用内部的fun,直到不满足条件
根据提供的参考资料,我们无法直接确定函数返回值为012345的原因。参考资料分别涉及了滤镜的算法、猜数字游戏的模块划分、随机数生成的方法、被调用函数的形参、字符数组的处理、负数在计算机中的表示等内容,与函数返回结果为012345并没有直接关联。
在没有额外的代码示例和更多背景信息的情况下,无法确切知道函数返回结果为012345的原因。
当判断满足条件,则会优先执行函数,所以是 B