如何逐步通过Python表达式求值过程?

2024-04-19 08:14:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想建立一个可视化调试器,帮助编程学生了解表达式求值是如何进行的(如何计算子表达式并用其值“替换”,类似于Excel中的表达式求值可视化工具)。在

看起来您不能使用Python的pdb逐步完成这个过程,因为它的最佳步骤粒度是代码行。有没有可能单步执行Python字节码?还有什么其他办法可以达到这个目标吗?在

编辑:我需要一个轻量级的解决方案,可以建立在Cpython标准库之上。在


Tags: 工具代码目标字节表达式过程可视化编程
3条回答

使用pdb,可以单步执行任何函数调用。对于任何其他语句,pdb可以在行中打印相关名称的值。您还需要哪些未涵盖的附加功能?在

如果您试图“单步执行”诸如列表理解之类的事情,那么从纯Python的角度来看这是行不通的,因为它只是一个操作码。在某个时候,对于每个表达式,你都需要告诉你的学生“这就是Python进入C实现并对其求值的地方…”。在

你应该去看看reinteract,这很简单,你可以为它做贡献

你试过布丁吗? http://pypi.python.org/pypi/pudb 像debian这样: apt-get安装python-pudb

它连接到pdb,所以我想这不是你要找的。至少,当你进入一个函数时,它会清楚地显示出你在哪个函数中。在

对于教学生,你可以:

  • 首先,用变量编写程序,用几个步骤组合
  • 使用合适的python调试器(pdb、winpdb、pudb…)调试此程序
  • 然后,一旦这个过程被很好地理解了,通过将代码组合成更少的行,逐渐地去掉临时变量,直到最终的代码。在

我知道,这还远远不够完美,但这是目前我能想到的最好的。在

相关问题 更多 >