我经常看到的一个问题,但尚未找到适合我的问题的解决方案。因此,我希望能得到一些帮助来改进我的代码和我对 Python 的理解。
我正在处理一大块以语法进化为特色并在几个嵌套(目前不可避免)类中运行的代码。
基类(Genetic)处理种群,种群的每个成员都是个体类的一个实例,并使用算法类进行评估。为避免过于复杂 - 代码在多个层中运行(将 Spice 模拟添加到混合中)并运行......相当长的时间 - 有时是几个小时。
这就是我开始寻找一种解决方案的原因,该解决方案允许我以一种不会搞砸一切的方式停止执行。如果我使用通常的 ctrl+c 选项,它只会破坏一切并迫使我重新启动内核并丢失所有数据。
我正在考虑在代码中添加一种监视器,允许我输入按键序列,然后说“好的,我看到你想要完成,我将简单地完成当前的评估循环并退出” .
我相信我不能使用键盘中断,因为这会立即退出代码执行。如果检测到密钥,我更有可能需要一个会改变的标志....
任何帮助,将不胜感激。
所以总结一下我的pseudoIdea是这样的:
for each generation:
if exit.flag != true:
for each individual:
evaluate individual
else:
write result
finish and exit
when key detected set exit.flag to true
谢谢!