2012-11-30 66 views
0

我知道Python解释器和ipython有一个简单的方法来浏览命令的历史。这是在交互式Python编程中。非交互式Python命令历史

我的问题/问题: 我有一个基于GUI的Python工具,可以在点击“PLOT”按钮之前在字段中单击并输入值,并在屏幕上显示一个图。我正在寻找的是一种访问完全再现情节的“最小化脚本”的方法。

所以我想知道是否有办法请求一个无交互的Python实例经历的所有命令的积压。

如果它不是内置的,有人可能会建议一种方法来在函数调用运行的同时自动转储函数调用。

+1

'不交互的python实例'被称为python程序。它的python源代码是'实例'经历的命令。 –

+0

我同意Martijn。也许我选择的文字不是最好的。但请注意,我有一个基于GUI的工具,我想要的是一种生成(较小)源代码的方法,该代码只列出所经过的函数调用,而没有所有的点击和编辑... – user1866050

回答

0

最简单的方法是Pickle您的绘图对象。然后,您可以重新加载pickle文件,并且该对象将像转储时一样存储在内存中。

它应该只需要几行来实现程序中的转储和重载功能。

这当然不会给你一个命令列表或类似的东西重新生成图,但它确实给你的对象的确切状态。

如果您使用matplotlib来绘图,那么image itself is not picklable。但是您可以创建一个包含您输入的所有信息的类,并将其传递给matplotlib例程,并再次保存该状态。

+0

谢谢。我知道Pickles以及matplotlib对象还没有完全被选中的事实。因此,创建一个“可以重现图形的最小脚本”的想法。 “创建一个包含你输入的所有信息的类”似乎不是一种快速而简单的(快速而肮脏的)达到目标的方式。 – user1866050

+0

@ user1866050你可能想在你的问题中加入更多的细节来表明你正在使用诸如'matplotlib'之类的东西。有不止一种方法来生成一个情节。 – tpg2114