¿Cómo borrar variables en ipython?

146

A veces vuelvo a ejecutar un script dentro de la misma sesión de ipython y recibo malas sorpresas cuando las variables no se han borrado. ¿Cómo borro todas las variables? ¿Y es posible forzar esto de alguna manera cada vez que invoco el comando mágico% run?

Gracias

saltamontes
fuente

Respuestas:

206

%reset parece despejar variables definidas.

aisbaa
fuente
2
Gracias. ¿Alguna forma de configurarlo automáticamente antes de cada% de ejecución?
saltamontes
2
Puede convertir su script en una función para mantener limpio el espacio de nombres global.
Robert Pollak
35
Acabo de encontrar% reset -f borra el espacio de nombres global sin confirmación del usuario
WillJones
1
sí reset -f es genial, no es necesario confirmar manualmente cada vez más :)
user3723247
1
@Victor %se usa para los comandos mágicos de ipython aquí está %reset ipython.readthedocs.io/en/stable/interactive/…
aisbaa
56

EDITADO después del comentario de @ErdemKAYA.

Para borrar una variable, use el comando mágico:

%reset_selective <regular_expression>

Las variables que se borran del espacio de nombres son las que coinciden con las dadas <regular_expression>.

Por lo tanto

%reset_selective -f a 

borrará todas las variables que contienen un a.

En cambio, para borrar solo ay no aa:

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

vea también %reset_selective?para más ejemplos y https://regexone.com/ para un tutorial sobre expresiones regulares.

Para borrar todas las variables en el espacio de nombres ver:

%reset?
SeF
fuente
9
De lo contrario, también se puede usar "del a" de python.
SeF
1
No, este comando se tratará name_variablecomo una declaración regex y eliminará lo que corresponda.
Erdem KAYA
@ErdemKAYA gracias, ¡nunca lo había notado antes! Respuesta editada.
SeF
1
¡De ningún modo! :) Es algo contrario a la intuición de hecho.
Erdem KAYA
37

En iPython puedes eliminar una sola variable como esta:

del x
Joop
fuente
13

Lo intenté

%reset -f

y borró todas las variables y contenidos sin aviso. -frealiza la acción de fuerza en el comando dado sin solicitar sí / no .

Ojalá esto ayude .. :)

Babu KM
fuente
9

Agregar las siguientes líneas a un nuevo script borrará todas las variables cada vez que vuelva a ejecutar el script:

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

Para facilitarle la vida, puede agregarlos a su plantilla predeterminada.

En Spyder: Tools>Preferences>Editor>Edit template

Carl
fuente
Me gusta esto, ya que también se puede ejecutar desde un script.
Zargo
4

Aparte de los métodos mencionados anteriormente. También puede usar el comando del para eliminar múltiples variables

del variable1,variable2
Devarshi Mandal
fuente
0

Una opción para salir en el Panel de la consola también borrará todas las variables en el explorador de variables

*** Tenga en cuenta que perderá todo el código que ha ejecutado en el Panel de la consola

Sirish
fuente