Як очистити змінні в ipython?


146

Іноді я повторюю скрипт в рамках одного сеансу ipython, і я отримую погані сюрпризи, коли змінні не були очищені. Як очистити всі змінні? І чи можна якось примушувати це кожен раз, коли я викликаю магічну команду% run?

Дякую

Відповіді:


206

%reset Здається, очистити визначені змінні.


2
Дякую. Будь-який спосіб встановити його автоматично перед кожним% запуском?
коник

2
Ви можете перетворити свій скрипт у функцію для чистого простору глобальних імен.
Роберт Поллак

35
Щойно знайдений% reset -f очищає глобальну область імен без підтвердження користувача
WillJones

1
так скидання -f це чудово, не потрібно вручну підтверджувати щоразу більше :)
user3723247

1
@Victor %використовується для магічних команд ipython ось ось %reset ipython.readthedocs.io/en/stable/interactive/…
aisbaa

56

ВИДАЛЕНО після коментаря @ErdemKAYA

Щоб стерти змінну, використовуйте команду магія:

%reset_selective <regular_expression>

Змінні, які видаляються з простору імен, є тією, що відповідає заданій <regular_expression>.

Тому

%reset_selective -f a 

видалить усі змінні, що містять a.

Натомість видаляти лише, aа не aa:

In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a  # raise NameError
In: aa  # returns 2

див. також %reset_selective?додаткові приклади та https://regexone.com/ для підручника з регулярними виразками.

Щоб видалити всі змінні в просторі імен, див.

%reset?

9
Інакше "del a" від python також може бути використаний.
SeF

1
Ні, ця команда буде розглядатись name_variableяк вираз регулярного вираження і видалить все, що відповідає їй.
Erdem KAYA

@ErdemKAYA дякую, я ніколи цього не помічав! Відповідь відредаговано.
SeF

1
Зовсім не! :) Це дещо протилежне інтуїтивно.
Erdem KAYA


13

я намагався

%reset -f

і очищати всі змінні та вміст без запиту. -fробить силову дію за даною командою, не вимагаючи, щоб так / ні .

Бажаю, щоб це допомогло .. :)


9

Додавання наступних рядків до нового сценарію очищатиме всі змінні щоразу при повторному запуску сценарію:

from IPython import get_ipython
get_ipython().magic('reset -sf') 

Щоб полегшити життя, ви можете додати їх до шаблону за замовчуванням.

У Spyder: Tools>Preferences>Editor>Edit template


Мені це подобається, оскільки це також можна запустити зі сценарію.
Зарго

4

Крім методів, згаданих раніше. Ви також можете використовувати команду del для видалення декількох змінних

del variable1,variable2

0

Опція виходу на панель консолі також очистить всі змінні в Explorer Explorer

*** Зауважте, що ви втратите весь код, запущений на панелі консолі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.