2012-11-30 68 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