运行pathList函数时pthlist、nmlist变量无法查看打印是何原因
问题成因
你遇到的问题由两个核心原因导致:
- 作用域规则限制:函数内部定义的
pthlist、nmlist属于函数局部变量,仅在函数执行过程中存在于函数的私有作用域内,函数运行结束后局部变量会被回收,默认不会进入全局命名空间。而常规的Variable Explorer默认只展示全局作用域的变量,你在函数外部自然无法直接访问、打印这两个内部变量,也看不到它们在变量面板中显示。 - 代码存在语法错误:你贴出的代码最后一行
return pthlist, nmlist缩进不匹配,和函数内其他代码的缩进层级不一致,会触发IndentationError缩进错误,导致函数根本无法正常执行完成,自然不会生成预期的列表变量。
修复方法
- 先修正代码缩进问题,同时提前导入依赖的
os模块,修正后的可运行代码如下:
import os def pathList(d): # 入参为目标目录路径 pthlist = [] # 存储目录下所有tif文件的完整路径 nmlist = [] # 存储目录下所有tif文件的文件名 for item in os.scandir(d): if item.name.endswith(".tif"): pthlist.append(os.path.join(d, item.name)) nmlist.append(item.name) return pthlist, nmlist
- 调用函数时,必须用全局作用域的变量接收函数的返回值,接收后的全局变量会正常显示在Variable Explorer中,也可以直接打印输出:
# 替换为你实际要扫描的目录路径 tif_folder = "D:/your/work/tif_files" pthlist, nmlist = pathList(tif_folder) # 验证输出 print(pthlist) print(nmlist)
补充:如果需要查看函数运行过程中的局部变量值,可以在函数内部代码行加断点,以调试模式运行代码,程序暂停在断点位置时,当前函数作用域内的所有局部变量都会展示在变量面板中。
内容的提问来源于stack exchange,提问作者Tim Kerremans
相关产品推荐
相关产品推荐

