LoginSignup
1
1

More than 5 years have passed since last update.

Pythonのインタラクティブシェル(ipython)で変数の定義を削除する

Last updated at Posted at 2018-06-06

pythonに疎いせいでipythonを利用中にstrという変数を宣言して変なものを入れてしまった。
そんなことを忘れて、int型をstring型に変換して行おうとstr()を使おうとしたら、

print str(4)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-137-6f54e899169d> in <module>()
----> 1 print str(4)

TypeError: 'csr_matrix' object is not callable

というエラーに。
これは変数strをそのようには呼び出せないよというような意味合いらしい。アホだった…

ここで素直にstrの宣言を消せばいいのだがインタラクティブシェル(ipython)で実行しているためそう簡単にはできない。
ipythonではシェルであるようなclearというようなコマンドを利用することができなかった。
そこで発見したのがマジックコマンドの

%reset

ただこれはすべてのユーザの定義、入力履歴、出力履歴等が消えてしまうらしい。
これは困る。
そこで選択的に消せるコマンドが


%reset_selective hogehoge

ただこれは対象は正規表現で指定されるため上記の場合ではhogeを含む定義すべてを消去してしまう。

そこでhogehoge という文字列を選択して定義をクリアーする場合は完全一致を示す^hogehoge$と書かなければいけない。
正規表現の意味は以下の通り。

書き方 例  意味
^ ^hoge hogeで始まる
$ hoge$ hogeで終わる

したがって定義hogehogeのみを消す場合は以下のように記述する。


%reset_selective ^hogehoge$

まとめ

ipythonで宣言の定義を消去するときは正規表現に気をつけて%reset_selectiveを使う。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1