你真的不能做與print
語句,但你可以做一些事情ipython
的輸出,認爲這些命令:
In [13]: x = range(3)
In [14]: x
Out[14]: [0, 1, 2]
In [15]: print x
[0, 1, 2]
首先,x
分配Out[14]
到表達式的值,然後顯示Out[14]
。
你可以破解ipython
以不同的方式顯示它。據我所知,ipython
使用pprint
內部或其副本。只是猴子補丁pprint.pprint/pprint.pformat/pprint.PrettyPrinter
不起作用。你需要破解ipython。
其次,print x
直奔Python的核心。在python 2.x中,你不能改變print
的功能。在Python 3.x print()
只是一個功能,你可以猴子補丁。
如果你打印的是你自己的類的對象,隨時重新定義__str__
和__repr__
像NumPy這樣做:
numpy.set_printoptions(threshold=2)
numpy.array(range(10)).__str__()
'[0 1 2 ..., 7 8 9]'
print numpy.array(range(10))
[0 1 2 ..., 7 8 9]
最後,ipython
自帶%page
魔法命令,你可以發出%page x
如果表現x
是足夠大的,你會被放到less
或類似的尋呼機,你可以一次查看這個文本表示一頁。
P.S. ipython
可以通過「特質」擴展,但它對我來說仍然是魔術,但也許你可以使用特質來解決第一種情況。
我同意列表/字典,但我認爲numpy數組會自動限制打印的數量。 (如果你意識到你不小心鍵入了'print longList'並且數據屏幕閃爍着,你通常可以通過ctrl-c來實現) – Noah
這是'__str__'方法的一個基本的東西。每個班級的一部分(而不是集中),也就是說,我不認爲*這將在一般情況下成爲可能......但很高興學習,否則! –
如果數組有超過1000個元素,則打印一個NumPy數組會產生摘要。這可以使用['numpy.set_printoptions']進行配置(http://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html)。 – user2357112