Spyder变量浏览器不显示变量求助(已尝试选项菜单)
问题解决:Spyder变量浏览器看不到函数内的变量
问题原因
你代码里的player_name、season、player都是main()函数的局部变量,函数执行完成后,Python会自动回收这些局部变量,所以Spyder的变量浏览器里找不到它们。之前无函数结构的代码里变量属于全局作用域,所以能正常显示。
解决方案
方案1:将局部变量改为全局变量
在main()函数开头声明变量为全局,这样函数执行完变量不会被回收:
def main(): global player_name, season, player # 声明为全局变量 player_name = input("Enter player name: ") season = input("Enter season: ") player = Player(player_name) player.fetch_data(season) print(player.game_log)
方案2:函数返回变量并赋值给全局
修改main()函数返回需要的变量,在主程序里接收:
def main(): player_name = input("Enter player name: ") season = input("Enter season: ") player = Player(player_name) player.fetch_data(season) print(player.game_log) return player_name, season, player # 返回需要查看的变量 if __name__ == "__main__": player_name, season, player = main() # 赋值为全局变量
方案3:用Spyder调试模式查看(推荐)
不需要修改代码,直接用调试功能:
- 在
print(player.game_log)行的行号旁点击红点设置断点 - 点击Spyder工具栏的调试运行按钮(绿色虫子图标)
- 程序运行到断点时会暂停,此时变量浏览器会显示函数内的所有局部变量
内容的提问来源于stack exchange,提问作者Alex Khan
相关产品推荐
相关产品推荐

