请出示您的 ID(E)!

Show me your ID(E)!

我经常处理非常小的代码片段,最多 100 行,尤其是在我学习新东西并只是玩代码或调试的情况下。

因为我经常更改代码并想看看它如何改变我的变量和输出的内容,所以

很乏味

1) 点击调试按钮,等待调试器启动(在我的例子中我使用 PyCharm 作为 IDE)然后检查输出

2) 为我要观察的变量插入一些打印并编译代码(比启动调试器快一点)。

为了消除这个耗时的工作流程,我每隔几秒就不断地点击编译或调试按钮,有没有 IDE 我可以在其中设置一个手表到几个变量然后每次我在源代码中更改一个字符(或者,每半秒),IDE 会自动编译所有内容,然后我会看到我的变量的新值?

(当然,当我中间更改代码时,编译会出错,但这没关系。这个功能会节省很多时间。也许 PyCharm 已经实现了吗?如果没有,理想情况下我会希望有一个与语言无关的 IDE,类似于 PyCharm,其中 Java 等的变体也存在。如果没有,因为我在 Python 中编码,一个 Python IDE也会很棒。)

这可能不是您要查找的内容,但 PyCharm(以及 IntelliJ 和其他可能)可以 运行 在代码更改时自动测试。

在 PyCharm 运行 工具栏中 寻找 "Toggle auto-test" 按钮。

例如,在 PyCharm 中,您可以创建仅 运行 感兴趣的代码并打印所需变量的测试用例。 然后创建一个 运行 配置,仅 运行 那些测试并自动将其设置为 运行。

有关详细信息,请参阅 PyCharm documentation on rerunning tests

IntelliJ 的 Scala 插件以 "worksheets," 的形式提供了您所需要的一切,其中每个表达式的值或它引用的任何内容的值发生更改时都会自动重新编译。

因为(根据您对 PyCharm 的使用),我假设您主要使用 Python,我认为 Jupyter notebook 是您最好的选择。 Jupyter 与语言无关,但开始时特定于 python(因此被称为 IPython notebook)。

我还没有尝试过,但是 this guide 声称可以让 Jupyter 与 PyCharm

一起工作

编辑:这是另一种可能性,称为vim worksheet;我没试过,但它声称与 Scala 工作表做同样的事情,但在 vim 中,并且适用于多种语言,包括 Python.

python Spyder IDE(Anaconda 附带)具有此功能。当您点击 运行 时,您可以在屏幕右上角看到所有变量,您可以单击它们来查看它们的值(这对 Numpy 数组也非常有帮助!)。

如果您对实际的工作流程改进感兴趣:

我曾经像你一样编程,查看我的变量更改为什么,并根据这些修改设计或调试我的代码,然而,一遍又一遍地设置要监视的变量效率低且成本高,此外什么时候有bug,就得重新调试了。

我改变了我的设计过程以改善我的工作流程并采用了测试驱动开发 (TDD),有了它,您可以查看用于特定实现或 IDEs 的工具,但原则和工作流程与您同在,有了它,您不再关注变量是如何变化的,而是专注于函数应该做什么,这意味着更快的迭代(使用实时测试工具)、更容易的调试和更好、更安全的重构。

我最喜欢的工具是 Cucumber 和不可知论工具(针对 IDE 或编程语言),它可以帮助您测试代码场景并同时记录您的功能。

希望它能有所帮助,我知道这是一个非常自以为是的答案,但它是改进工作流程的诚实建议。

你应该试试 Thonny. It is developed by Institute of Computer Science of University of Tartu

以下可能对您有帮助的 4 个功能(来自网站的逐字记录):

  1. 无障碍变量。

    完成 hello-worlds 后,select 查看 → 变量并查看您的程序和 shell 命令如何影响 Python 变量。

  2. 简单调试器。

    只需按 Ctrl+F5 而不是 F5,您就可以 运行 逐步执行您的程序,无需断点。按 F6 大步,F7 小步。步骤遵循程序结构,而不仅仅是代码行。

  3. 单步执行语句

    逐步执行表达式计算。如果您使用小步骤,那么您甚至可以看到 Python 如何评估您的表达式。您可以将这个浅蓝色框想象成一张纸,其中 Python 将子表达式逐个替换为它们的值。 表达式求值的可视化

  4. 函数调用的忠实表现。

    进入函数调用会打开一个新的 window,其中包含单独的局部变量 table 和代码指针。很好地理解函数调用的工作原理对于理解递归尤为重要。