Come cancellare le variabili in ipython?


146

A volte riesco a ripetere uno script all'interno della stessa sessione di ipython e ricevo brutte sorprese quando le variabili non sono state cancellate. Come posso cancellare tutte le variabili? Ed è possibile forzarlo in qualche modo ogni volta che invoco il comando magico% run?

Grazie

Risposte:


206

%reset sembra cancellare le variabili definite.


2
Grazie. Un modo per impostarlo automaticamente prima di ogni% di esecuzione?
cavalletta

2
È possibile convertire lo script in una funzione per mantenere pulito lo spazio dei nomi globale.
Robert Pollak,

35
Appena trovato% reset -f cancella lo spazio dei nomi globale senza la conferma dell'utente
WillJones,

1
sì reset -f è fantastico, non è più necessario confermare manualmente ogni volta :)
user3723247

1
@Victor %è usato per i comandi magici di ipython qui %reset ipython.readthedocs.io/en/stable/interactive/…
aisbaa

56

MODIFICATO dopo il commento di @ErdemKAYA.

Per cancellare una variabile, usa il comando magico:

%reset_selective <regular_expression>

Le variabili che vengono cancellate dallo spazio dei nomi sono quelle corrispondenti al dato <regular_expression>.

Perciò

%reset_selective -f a 

cancellerà tutte le variabili che contengono un a.

Invece, per cancellare solo ae non aa:

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

vedi anche %reset_selective?per ulteriori esempi e https://regexone.com/ per un tutorial regex.

Per cancellare tutte le variabili nello spazio dei nomi, vedere:

%reset?

9
Altrimenti si può usare anche "del a" di Python.
SeF

1
No, questo comando verrà considerato name_variablecome un'istruzione regex e rimuoverà tutto ciò che corrisponde ad esso.
Erdem KAYA,

@ErdemKAYA grazie, non l'avevo mai notato prima! Risposta modificata.
SeF,

1
Affatto! :) È davvero piuttosto intuitivo.
Erdem KAYA,

37

In iPython puoi rimuovere una singola variabile come questa:

del x

13

Provai

%reset -f

e cancellato tutte le variabili e i contenuti senza prompt. -fesegue l'azione di forzatura sul comando dato senza richiedere si / no .

Vorrei che questo aiuti .. :)


9

L'aggiunta delle seguenti righe a un nuovo script cancella tutte le variabili ogni volta che si esegue nuovamente lo script:

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

Per semplificarti la vita, puoi aggiungerli al modello predefinito.

In Spyder: Tools>Preferences>Editor>Edit template


Mi piace questo in quanto può anche essere eseguito da uno script.
Zargo,

4

A parte i metodi menzionati in precedenza. Puoi anche usare il comando del per rimuovere più variabili

del variable1,variable2

0

Un'opzione di uscita nel Pannello console cancellerà anche tutte le variabili in Esplora variabili

*** Nota che perderai tutto il codice che hai eseguito nel Pannello console

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.