我正在尋找一種方法來覆蓋和解析Python REPL中的所有輸出:例如,終端中的python/IPython,qtconsole。覆蓋REPL輸出
通過重寫打印功能,可以直接打印文本。對於一個簡單的例子,假設我們想感嘆號添加到所有輸出:
orig_print = print
print = lambda text: orig_print(text + '!')
現在所有打印命令將有加感嘆號。這可以重置爲:
del print
我的問題:如何做REPL輸出的等價物?例如,我怎樣才能做到這一點?
In[1]: 5 + 5
Out[2]: 10!
搜索導致我失望contextlib,子和sys.stdout的路徑,但我還沒有找到一個解決方案。在Github上檢查過sympy的打印模塊,但沒有成功。
嗯..也許這是可能的'sys.settrace' –