La meilleure solution que j'ai trouvée pour le moment est d'utiliser run_cell
méthode
Tout d'abord, vous devez récupérer le shell interactif Ipython actuel avec get_ipython
Exemple complet
ip = get_ipython()
for _ in range(5): ips.run_cell('inc')
Cette solution ne me satisfait pas pleinement, mais quelqu'un d'autre pourra peut-être ajouter quelque chose de mieux.
Note : La solution ci-dessous fonctionne pour les plus anciens Ipython
essayez de l'exécuter en tant que callable :
for _ in range(10): inc()
Explication
Les macros Ipython sont des instances de IPython.core.macro.Macro
Documentation indique qu'il s'agit d'un simple objet stockant un morceau d'histoire dans une variable. Et c'est vrai.
In [20]: inc.__dict__
Out[20]: {'value': u'x += 1\n'}
Vous pouvez également lire :
Une macro est simplement un appelable qui exécute une chaîne de caractères IPython