¿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

Respuestas:


206

%reset parece despejar variables definidas.


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?

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

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 .. :)


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


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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.