ipythonで変数をクリアする方法は?


146

時々、同じipythonセッション内でスクリプトを再実行し、変数がクリアされていない場合に不意を突くことがあります。すべての変数をクリアするにはどうすればよいですか?そして、魔法のコマンド%runを呼び出すたびに、どういうわけかこれを強制することは可能ですか?

ありがとう

回答:


206

%reset 定義された変数をクリアするようです。


2
ありがとう。各%runの前に自動的に設定する方法はありますか?
バッタ14

2
スクリプトを関数に変換して、グローバル名前空間をクリーンに保つことができます。
Robert Pollak、2015

35
%reset -fがユーザーの確認なしでグローバル名前空間をクリアすることがわかりました
WillJones

1
はい、リセット-fは素晴らしいです。毎回手動で確認する必要はありません:)
user3723247

1
@Victorは、%魔法のコマンドipythonここのために使用されている%reset ipython.readthedocs.io/en/stable/interactive/...
aisbaa

56

@ErdemKAYAコメントの後に編集されました。

変数を消去するには、magicコマンドを使用します。

%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
それ以外の場合は、Pythonの「del a」も使用できます。
SeF 2016

1
いいえ、このコマンドはname_variable正規表現として扱われ、それに一致するものはすべて削除されます。
Erdem KAYA

@ErdemKAYAありがとう、これまで気づかなかった!回答を編集しました。
SeF

1
どういたしまして!:)それは確かにやや逆直観的です。
Erdem KAYA '30


13

私は試した

%reset -f

プロンプトなしですべての変数と内容をクリアしました。yes / no-fを要求せずに、指定されたコマンドに対して強制アクションを実行します。

これが役に立てば幸い.. :)


9

新しいスクリプトに次の行を追加すると、スクリプトを再実行するたびにすべての変数がクリアされます。

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

作業を簡単にするために、それらをデフォルトのテンプレートに追加できます。

スパイダーで: Tools>Preferences>Editor>Edit template


スクリプトからも実行できるので、これが好きです。
ザルゴ


0

コンソールパネルの終了オプションも変数エクスプローラーのすべての変数をクリアします

***コンソールパネルで実行したすべてのコードが失われることに注意してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.