неинтерактивная история команд Python

Я знаю, что интерпретатор python и ipython имеют простой способ просматривать историю команд. То есть в интерактивном программировании на Python.

Моя проблема / вопрос: у меня есть инструмент Python на основе графического интерфейса, который позволяет мне щелкать и вводить значения в поля, прежде чем нажимать кнопку «ГРАФИК», и я получаю график на экране. Я ищу способ получить доступ к «минимальному сценарию», который точно воспроизводит сюжет.

Поэтому мне было интересно, есть ли способ запросить список всех команд, которые прошел неинтерактивный экземпляр Python.

Если он не встроен, может ли кто-нибудь посоветовать способ автоматического сброса вызовов функций в файл одновременно с их запуском.


person user1866050    schedule 30.11.2012    source источник
comment
«неинтерактивный экземпляр Python» называется программой Python. Исходный код Python - это команды, которые прошел «экземпляр».   -  person Martijn Pieters    schedule 30.11.2012
comment
Я согласен Мартин. Возможно, мой выбор слов был не самым лучшим. Но обратите внимание, что у меня есть инструмент на основе графического интерфейса, и я хотел бы создать (меньший) исходный код, в котором перечислены только вызовы функций, через которые он прошел, без всех щелчков и редактирования...   -  person user1866050    schedule 30.11.2012


Ответы (1)


Самый простой способ сделать это — Pickle объект вашего графика. Затем вы можете просто перезагрузить файл рассола, и объект будет в памяти так же, как и при сбросе.

Чтобы реализовать функцию дампа и перезагрузки в вашей программе, потребуется всего пара строк.

Это, конечно, не дает вам список команд или что-то подобное для регенерации фигуры, но дает вам точное состояние объекта.

Если вы используете matplotlib для построения графика, то само изображение не поддается обработке. Но вы можете создать класс, содержащий всю введенную вами информацию, которая передается подпрограммам matplotlib, и замариновать ее, снова сохранив состояние.

person tpg2114    schedule 30.11.2012
comment
Спасибо. Я знал о Pickles и о том, что объекты matplotlib еще не были полностью доступны для выбора. Таким образом возникла идея создать минимальный скрипт, способный воспроизвести график. Создание класса, содержащего всю введенную вами информацию, не кажется быстрым и легким (читай, быстрым и грязным) способом достижения моей цели. - person user1866050; 30.11.2012
comment
@user1866050 user1866050 Возможно, вы захотите указать в своем вопросе больше деталей, чтобы указать, что вы используете такие вещи, как matplotlib. Существует несколько способов создания сюжета. - person tpg2114; 30.11.2012