我正在尝试创建一个调试器函数,该函数在引发错误时调用,让我访问控制台,以便检查程序中发生了什么.这是基本功能:
def DEBUGGER(error):
print(error)
print("[DEBUGGER] Your program has failed, here is the debugger. Enter EXIT to end program.")
while True:
line = input(">>> ").lower()
if line == 'exit':
sys.exit(0)
else:
try:
exec(line)
except Exception as e:
print(str(e))
Run Code Online (Sandbox Code Playgroud)
问题是我不能输入类似print(var)因为它在另一个函数中引用的东西.Globals函数对我没有帮助,因为我希望能够在我的程序中调用任何变量,并且我无法将它们全局化.我知道我可以通过将所有函数放在类中来解决它但我不能很多原因.
有没有办法获取运行函数的局部变量?(当我打电话时DEBUGGER(),母功能仍在运行)
如果不是,我可以导出当前函数的局部变量并将其作为参数传递给DEBUGGER()?
谢谢你的回答.