擅长:python、mysql、java
<p>使你的程序更模块化。理想情况下,主代码块应该类似于</p>
<pre><code>import config
import my_numerics
import post_processing
my_numerics.configure(config.numerics)
values = my_numerics.run()
post_processing.run(values, config.post_processing)
</code></pre>
<p>你明白了。然后很容易生成一个“mock”numerics对象,该对象返回预先计算的数据,并将其传递给后处理。在</p>
<hr/>
<p>编辑:我还是不明白。以下是您的问题的正确伪代码吗?在</p>
^{pr2}$
<p>也就是说,你想在数字运行的中途中断(不是在末尾),比如在第三个循环的开始,而不必重新运行前两个?在</p>
<p>如果是这样,即使循环不包含太多代码,也应模块化设计:</p>
<pre><code>input_data = np.load(some_stuff)
stage_one = do_thing_one(input_data)
stage_two = do_thing_two(stage_one)
stage_three = do_thing_three(stage_two)
</code></pre>
<p>第一种方法是通过隐式接口(即局部变量字典)在不同的阶段之间传输数据。这是不好的,因为您还没有定义要使用哪些变量,因此您不能为了测试/调试目的而模拟它们。第二种方法定义函数之间的(基本)接口。现在您不再关心<code>do_thing_one</code>做什么了,只要它接受一些输入数据并返回一些输出数据。{cd2>这意味着你可以调试</p>
<pre><code>stage_two = np.load(intermediate_stuff)
stage_three = do_thing_three(stage_two)
</code></pre>
<p>只要<code>stage_two</code>中的数据格式正确,它来自何处都无关紧要。在</p>