2010-11-25 7 views
7

¿Hay alguna manera de hacer que iPython repita automáticamente el resultado de una instrucción de asignación?ipython: ¿echo de forma automática el resultado de la instrucción de asignación?

Por ejemplo, en MATLAB, al finalizar una instrucción de asignación sin un punto y coma, se imprime el resultado de la asignación, y poner un punto y coma al final de la instrucción suprime cualquier resultado.

>> b=1+2 

b = 

    3 

>> b=1+2; 
>> 

Quiero ser capaz de hacer algo similar en iPython. Sin embargo, actualmente tengo que usar dos declaraciones separadas si deseo ver el resultado de la tarea:

In [32]: b=1+2 

In [33]: b 
Out[33]: 3 

Gracias de antemano.
Misha

+0

Último comentario, pero esta es una de las cosas que más extraño de Matlab en IPython. Actualmente hay una [solicitud de función] (https://github.com/jupyter/notebook/issues/93) abierta para agregar algo similar a los portátiles IPython, pero aún no se implementó nada. –

Respuesta

0

asignación es meramente una declaración en Python, por lo que tendría que compilar el código, caminar por la AST, encontrar la asignación, y luego imprimir la variable de repr() después de correr la misma.

+0

¿Qué es AST? – hobs

+0

Entonces, ¿el shell iPython o python necesita hacer todo esto y la única solución es enviar una solicitud de función al proyecto cpython o ipython? – hobs

+0

@hobs: [Árbol de sintaxis abstracto.] (Http://en.wikipedia.org/wiki/Abstract_syntax_tree) El material para manejarlo está en ['ast'] (http://docs.python.org/library /ast.html). –

Cuestiones relacionadas