2009-10-06 21 views
12

Me gusta mucho IPython por trabajar con el intérprete de Python. Sin embargo, continuamente me encuentro escribiendo exit para salir, y aparece el mensaje "Escriba exit() para salir".salir de ipython

Sé que puedo escribir Ctrl-D para salir, pero ¿hay alguna manera de que pueda escribir exit sin paréntesis y obtener IPython para salir?

actualización: Gracias a nosklo, esto se puede hacer fácilmente mediante la adición de la siguiente línea a la función main() en su ipy_user_conf.py:

# type exit to exit 
ip.ex("type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or ''") 
+1

I también tiene (tuvo) sus problemas al usar 'salir' debido a la misma memoria muscular. Para cualquier persona nueva en IPython (o buscando una forma más rápida), presionar -D dos veces es más rápido. Simplemente no lo golpees tres veces o también serás desconectado de tu caparazón (linux). –

Respuesta

11
>>> import sys 
>>> class Quitter(object): 
...  def __repr__(self): 
...   sys.exit() 
... 
>>> exit = Quitter() 

Se puede utilizar la siguiente manera:

>>> exit 

EDIT:

Yo no uso ipython mí mismo, pero parece tener algún extraño sys.exit manejador. La solución que encontré es el siguiente:

In [1]: type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or '' 

Uso:

In [2]: exit 
+0

Esto no funciona con IPython. Tiene su propia clase Quitter que llama al método de salida apropiado en la instancia real de IPShell. Pero la idea general es correcta. –

+0

@Robert Kern: Bien, encontré una solución 'ipython'. – nosklo

3

%exit o %Exit, si tiene habilitada la confirmación y quiero saltearlo Puede alias a, p. %e poniendo execute __IPYTHON__.magic_e = __IPYTHON__.magic_exit en su ipythonrc.

+0

Gracias, pero realmente quiero literalmente escribir "salir". Porque está atorado en la memoria muscular. –

+2

'% exit' o'% Exit' no son funciones de línea mágica en IPython versión 1.1.0. Entonces, usando IPython 1.1.0, esta respuesta no funciona para mí en absoluto. – halloleo

+1

@halloleo Mi corazón sangra por usted en la cuenta de la respuesta de hace 5 años que ya no es relevante. 'exit' funciona OOB en versiones recientes de IPython y esta pregunta no es necesaria. –

0

Al menos en IPython 0.10, debe ser capaz de establecer IPython .rc.confirm_exit = False