Bagaimana cara menghapus variabel di ipython?


146

Kadang-kadang saya menjalankan kembali skrip dalam sesi ipython yang sama dan saya mendapatkan kejutan buruk ketika variabel belum dihapus. Bagaimana cara menghapus semua variabel? Dan mungkinkah untuk memaksakan ini entah bagaimana setiap kali saya menjalankan perintah sihir% run?

Terima kasih

Jawaban:


206

%reset tampaknya menghapus variabel yang didefinisikan.


2
Terima kasih. Adakah cara untuk mengaturnya secara otomatis sebelum setiap% dijalankan?
Belalang

2
Anda bisa mengonversi skrip Anda menjadi fungsi untuk menjaga namespace global tetap bersih.
Robert Pollak

35
Baru ditemukan% reset -f membersihkan namespace global tanpa konfirmasi pengguna
WillJones

1
ya reset -f hebat, tidak perlu secara manual mengkonfirmasi setiap kali lagi :)
user3723247

1
@ Viktor %digunakan untuk perintah sihir %reset ipython
aisbaa

56

Diedit setelah komentar @ErdemKAYA.

Untuk menghapus variabel, gunakan perintah ajaib:

%reset_selective <regular_expression>

Variabel yang dihapus dari namespace adalah yang cocok dengan yang diberikan <regular_expression>.

Karena itu

%reset_selective -f a 

akan menghapus semua variabel yang mengandung a.

Sebaliknya, untuk menghapus saja adan tidak aa:

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

lihat juga %reset_selective?untuk lebih banyak contoh dan https://regexone.com/ untuk tutorial regex.

Untuk menghapus semua variabel di namespace, lihat:

%reset?

9
Kalau tidak "del a" dari python, bisa digunakan juga.
SeF

1
Tidak, perintah ini akan diperlakukan name_variablesebagai pernyataan regex, dan akan menghapus apa pun yang cocok dengannya.
Erdem KAYA

@ErdemKAYA terima kasih, saya tidak pernah menyadarinya sebelumnya! Jawaban diedit.
SeF

1
Tidak semuanya! :) Memang agak kontra intuitif.
Erdem KAYA

37

Di iPython Anda dapat menghapus satu variabel seperti ini:

del x

13

Saya mencoba

%reset -f

dan membersihkan semua variabel dan konten tanpa diminta. -fmelakukan tindakan paksa pada perintah yang diberikan tanpa meminta ya / tidak .

Semoga ini bisa membantu .. :)


9

Menambahkan baris berikut ke skrip baru akan menghapus semua variabel setiap kali Anda menjalankan ulang skrip:

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

Agar mudah, Anda dapat menambahkannya ke templat default Anda.

Dalam Spyder: Tools>Preferences>Editor>Edit template


Saya suka ini karena juga dapat dijalankan dari skrip.
Zargo

4

Terlepas dari metode yang disebutkan sebelumnya. Anda juga dapat menggunakan del perintah untuk menghapus beberapa variabel

del variable1,variable2

0

Opsi berhenti di Panel Konsol juga akan menghapus semua variabel di penjelajah variabel

*** Perhatikan bahwa Anda akan kehilangan semua kode yang telah Anda jalankan di Panel Konsol

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.