<返回更多

这两个Python工具真香!修改代码不会影响运行

2021-05-18  今日头条  无情逻辑
加入收藏
这两个Python工具真香!修改代码不会影响运行

 

你是否运行过for循环并希望在for循环内的代码中添加更多详细信息?你可能会决定不这样做,因为添加更多详细信息意味着需要停止代码并重新运行所有内容。

代码已经运行了几个小时,停止代码会让人不爽。如果可以在每次迭代中重新加载循环体而不丢失如下所示的状态,那不是很好吗?

这两个Python工具真香!修改代码不会影响运行

 

在本文中,我将向大家展示两个工具,这些工具可在Python文件更改时重新加载代码或运行任意命令。

1、Entr

Entr:Python文件更改时运行任意命令

entr 工作原理

允许你在文件更改时运行任意命令。为了了解entr会有什么帮助,我们想创建一个函数,该函数需要一个数字列表并返回偶数。

我们将上面的文件命名为entr_examples.py,然后使用pytest检查get_evens函数是否返回偶数。

$ pytest entr_examples.py
这两个Python工具真香!修改代码不会影响运行

 

测试失败,因为我们尚未向get_evens函数添加任何代码。要尝试以其他方式获取偶数,请在代码更改时使用entr重新运行pytest entr_examples.py命令。

$ ls entr_examples.py | entr python entr_examples.py
这两个Python工具真香!修改代码不会影响运行

 

太cool了,通过使用entr,我们无需在开发功能时再次重新运行同一命令。由于"测试驱动开发"的第一条法则是"除非编写了失败的单元测试,否则你不得编写生产代码",因此entr鼓励开发人员以其他方式测试编写代码的方法,直到其起作用为止。

语法

以下是entr的常规语法:

这两个Python工具真香!修改代码不会影响运行

 

请注意,如果想一次跟踪多个Python文件,请使用ls * .py

安装

要在macOS上安装entr,请输入:

brew install entr

要在Ubuntu上安装entr,请输入:

sudo apt-get update
sudo apt-get install entr

另一个选择是克隆entr repo并按照安装说明进行操作。

2、Reloading

Reloading:重新加载循环主体而不会丢失其状态

要了解 Reloading 的有用性,我编写了一个打印偶数的 python 函数。但是,在循环运行时,还希望它在不停止循环的情况下输出奇数。

通常,这无法在Python中完成。在下面的代码中,即使我们在执行过程中将「print(f'{num} is odd')」 添加到循环主体中,输出中也没有奇数。

这两个Python工具真香!修改代码不会影响运行

 

但是,可以很容易地通过重新加载来完成。下面的GIF显示了如何将重载添加到循环中可以有所作为。

这两个Python工具真香!修改代码不会影响运行

 

如我们所见,在执行过程中向循环体中添加else语句后,将打印出奇数!

Reloading 在这里似乎并没有真正的帮助,因为执行for循环不需要花费很长时间。但是,如果你已经训练了数小时的深度学习模型,并且想要在每个 epoch 中打印更多统计信息而不停止循环,这将变得非常方便。

语法

要使用reloading,只需将其添加到如下所示的Python循环中:

这两个Python工具真香!修改代码不会影响运行

 

安装

pip install reloading

结论

刚刚我介绍了如何在更改Python文件时运行任意命令,并重新加载Python循环主体而不会丢失其状态。现在,如果你感兴趣,可以在日常工作中进行尝试,关注我获取更多有意思的干货!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>