Как мне сохранить вывод функции без повторного запуска функции в Spyder

#python #spyder

#python #spyder

Вопрос:

По сути, у меня есть 2 функции, вторая принимает вывод первой в качестве параметра. Что-то вроде:

 value1 = function1()
value2 = function2(value1)
  

Я хочу избежать запуска первого, так как для его запуска требуется много времени (5 минут ). В jupyter notebook вы можете просто закомментировать первую строку, и она будет выполняться без проблем, но в Spyder говорится, что значение 1 не определено. Есть ли какой-либо способ сделать это в spyder?

Комментарии:

1. Просто запустите функцию один раз, распечатайте value1 , затем закомментируйте первую строку и просто добавьте что-то вроде value1 = 42 или независимо от результата function1 .

2. в качестве альтернативы, для более сложных данных, вы можете сохранить свой результат в текстовом файле и заставить function2 извлекать данные из файла

3. Я должен был добавить, что value1 на самом деле является довольно большим фреймом данных. Но я надеялся, что будет просто быстрый способ, как в Jupyter. Вместо этого я запишу его в pkl / txt. Спасибо

Ответ №1:

(Сопровождающий Spyder здесь) Это идеальный случай для ячеек кода, которые представляют собой блоки кода, которые вы можете оценивать независимо.

Для этого вам нужно создать ячейку между value1 и value2 , добавив между ними комментарий, подобный этому:

 value1 = function1()

# %%

value2 = function2(value1)
  

Затем вы можете запустить ячейку, содержащую value1 только один раз, поместив туда курсор и нажав Shift Enter . После этого вы можете изменить содержимое второй ячейки и запускать ее столько раз, сколько захотите Shift Enter , без повторной оценки value1 .