2010-11-25 15 views
7

Existe-t-il un moyen de faire écho automatiquement à iPython du résultat d'une instruction d'affectation? Par exemple, dans MATLAB, la fin d'une instruction d'affectation sans point-virgule imprime le résultat de l'affectation, et l'ajout d'un point-virgule à la fin de l'instruction supprime toute sortie.ipython: répercute automatiquement le résultat de l'instruction d'affectation?

>> b=1+2 

b = 

    3 

>> b=1+2; 
>> 

Je veux être capable de faire quelque chose de similaire dans iPython. Cependant, actuellement, je dois utiliser deux déclarations distinctes si je veux voir le résultat de l'affectation:

In [32]: b=1+2 

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

Merci d'avance.
Misha

+0

Dernier commentaire, mais c'est l'une des choses qui me manquent le plus de Matlab dans IPython. Il y a actuellement une [demande de fonctionnalité] (https://github.com/jupyter/notebook/issues/93) ouverte pour ajouter quelque chose de similaire aux portables IPython, mais rien n'a encore été implémenté. –

Répondre

0

L'attribution est purement une déclaration en Python, de sorte que vous auriez à compiler le code, entrez l'AST, de trouver l'affectation, puis imprimer repr() de la variable après l'exécuter.

+0

Qu'est-ce que l'AST? – hobs

+0

Donc le shell iPython ou python doit faire tout cela et la seule solution est de soumettre une requête de fonctionnalité au projet cpython ou ipython? – hobs

+0

@hobs: [Abstract syntax tree.] (Http://en.wikipedia.org/wiki/Abstract_syntax_tree) Les trucs pour y faire face sont dans ['ast'] (http://docs.python.org/library /ast.html). –