文章插图
你是否运行过for循环并希望在for循环内的代码中添加更多详细信息?你可能会决定不这样做,因为添加更多详细信息意味着需要停止代码并重新运行所有内容 。
【这两个Python工具真香!修改代码不会影响运行】代码已经运行了几个小时,停止代码会让人不爽 。如果可以在每次迭代中重新加载循环体而不丢失如下所示的状态,那不是很好吗?
文章插图
在本文中,我将向大家展示两个工具,这些工具可在Python文件更改时重新加载代码或运行任意命令 。
1、EntrEntr:Python文件更改时运行任意命令
entr 工作原理允许你在文件更改时运行任意命令 。为了了解entr会有什么帮助,我们想创建一个函数,该函数需要一个数字列表并返回偶数 。
我们将上面的文件命名为entr_examples.py,然后使用pytest检查get_evens函数是否返回偶数 。
$ pytest entr_examples.py
文章插图
测试失败,因为我们尚未向get_evens函数添加任何代码 。要尝试以其他方式获取偶数,请在代码更改时使用entr重新运行pytest entr_examples.py命令 。
$ ls entr_examples.py | entr python entr_examples.py
文章插图
太cool了,通过使用entr,我们无需在开发功能时再次重新运行同一命令 。由于"测试驱动开发"的第一条法则是"除非编写了失败的单元测试,否则你不得编写生产代码",因此entr鼓励开发人员以其他方式测试编写代码的方法,直到其起作用为止 。
语法以下是entr的常规语法:
文章插图
请注意,如果想一次跟踪多个Python文件,请使用ls * .py
安装要在macOS上安装entr,请输入:
brew install entr
要在Ubuntu上安装entr,请输入:sudo apt-get updatesudo apt-get install entr
另一个选择是克隆entr repo并按照安装说明进行操作 。2、ReloadingReloading:重新加载循环主体而不会丢失其状态
要了解 Reloading 的有用性,我编写了一个打印偶数的 python 函数 。但是,在循环运行时,还希望它在不停止循环的情况下输出奇数 。
通常,这无法在Python中完成 。在下面的代码中,即使我们在执行过程中将「print(f'{num} is odd')」 添加到循环主体中,输出中也没有奇数 。
文章插图
但是,可以很容易地通过重新加载来完成 。下面的GIF显示了如何将重载添加到循环中可以有所作为 。
文章插图
如我们所见,在执行过程中向循环体中添加else语句后,将打印出奇数!
Reloading 在这里似乎并没有真正的帮助,因为执行for循环不需要花费很长时间 。但是,如果你已经训练了数小时的深度学习模型,并且想要在每个 epoch 中打印更多统计信息而不停止循环,这将变得非常方便 。
语法要使用reloading,只需将其添加到如下所示的Python循环中:
文章插图
安装
pip install reloading
结论刚刚我介绍了如何在更改Python文件时运行任意命令,并重新加载Python循环主体而不会丢失其状态 。现在,如果你感兴趣,可以在日常工作中进行尝试,关注我获取更多有意思的干货!推荐阅读
- 如何用Python输出数学公式?
- 还不理解 Error 和 Exception 吗,看这篇就够了
- Python实现用手机监控远程控制电脑
- 今日头条赚钱的6大经验分享
- 男人起床后搓这里有奇效
- 招聘|应届毕业生人数首超千万,这类专业超抢手
- 招聘|这3大行业月薪高达万元,待遇好却很“缺人”,没工作的可以试试
- 翡翠|五版币现在已经升值了,这“四大黑马”都涨了,遇到就收藏起来
- 曹操对关羽这么好为什么还要走,关羽投奔曹操的原因
- 瘦腿部瑜伽有哪些效果呢