Python3 使用递归函数时,函数参数的异常

新手上路,请多包涵
import os


def recursive_walk(source, result):
    print()
    print(result)
    for folderName, subFolders, fileNames in os.walk(source):
        for subFolder in subFolders:
            # result = result + '/' + subFolder
            # recursive_walk(subFolder, result)
            print('walk_dir:' + result + '/' + subFolder)
            recursive_walk(subFolder, result + '/' + subFolder)


recursive_walk('articles', 'result')

目录如下:
图片描述

程序运行结果为:


result
walk_dir:result/a

result/a
walk_dir:result/b

result/b

说明:
在 recursive_walk 前面部分 ,result 是正常的,而在递归调用前的那一print 语句中 result 存储的是首次调用函数传递的值。

问题出在哪里?

阅读 2.6k
1 个回答

是不是os.walk的原因呢,因为它本身就会一直递进,将深层文件也都列出来。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进