在Java/ c#中,您可以很容易地逐级检查代码以跟踪可能出错的地方,而IDE使这个过程对用户非常友好。
你能以类似的方式跟踪python代码吗?
在Java/ c#中,您可以很容易地逐级检查代码以跟踪可能出错的地方,而IDE使这个过程对用户非常友好。
你能以类似的方式跟踪python代码吗?
当前回答
Python导师是一个为新手设计的在线单步调试器。您可以在编辑页面上输入代码,然后单击“可视化执行”开始运行。
除其他外,它支持:
隐藏变量,例如,隐藏一个名为x的变量,把这个放在最后: # pythontutor_hide: x 保存/共享 其他一些语言,如Java, JS, Ruby, C, c++
然而,它也不支持很多东西,例如:
读取/写入文件-使用io。StringIO和io。取而代之的是BytesIO: demo 代码太大,运行时间太长,或者定义了太多的变量或对象 命令行参数 很多标准库模块,如argparse, csv, enum, html, os, sys, weakref… Python 3.7 +
其他回答
https://wiki.python.org/moin/PythonDebuggingTools
Pudb是PDB的一个很好的替代品
通过python代码进行编程步进和跟踪也是可能的(而且很简单!)查看sys.settrace()文档了解更多细节。这里也有一个教程让你开始。
从Python 3.7开始,你可以使用breakpoint()内置函数进入调试器:
foo()
breakpoint() # drop into the debugger at this point
bar()
默认情况下,breakpoint()将导入pdb并调用pdb.set_trace()。但是,你可以通过sys.breakpointhook()和使用环境变量PYTHONBREAKPOINT来控制调试行为。
有关更多信息,请参阅PEP 553。
Python导师是一个为新手设计的在线单步调试器。您可以在编辑页面上输入代码,然后单击“可视化执行”开始运行。
除其他外,它支持:
隐藏变量,例如,隐藏一个名为x的变量,把这个放在最后: # pythontutor_hide: x 保存/共享 其他一些语言,如Java, JS, Ruby, C, c++
然而,它也不支持很多东西,例如:
读取/写入文件-使用io。StringIO和io。取而代之的是BytesIO: demo 代码太大,运行时间太长,或者定义了太多的变量或对象 命令行参数 很多标准库模块,如argparse, csv, enum, html, os, sys, weakref… Python 3.7 +
如果你想要一个集成调试器的IDE,试试PyScripter。