如何阻止IDLE打印巨型列表?

时间:2009-03-04 04:10:13

标签: python ide editor python-idle

有时我会使用IDLE中的数千个项目列表,并意外地将其打印到shell中。当发生这种情况时,它会崩溃或至少非常显着地减慢IDLE。可以想象,这非常不方便。 有没有办法制作它,而不是打印整个东西,只需给我一个总结[1,2,...]输出? 任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:2)

如上所述,尝试自定义打印功能,如:

def my_print(obj):  
    if hasattr(obj, '__len__') and len(obj) > 100:  
        print '... omitted object of %s with length %d ...' % (type(obj), len(obj))  
    else: print obj

答案 1 :(得分:0)

使用IPython作为shell。

答案 2 :(得分:0)

您可以使用自定义打印功能。

答案 3 :(得分:0)

在Python 3中,由于print是一个函数,你应该能够“覆盖”它。 (我没有安装它所以我无法尝试确保它。)可能不建议用于真正的应用程序,但如果你只是尝试一下,我想也没关系。

它会像:

def myprint(*args):
    # write the function as described by other people
print = myprint

答案 4 :(得分:0)

IDLE的Squeezer扩展名是为了做到这一点而编写的。从Pypi的描述:

  

如果输出很长的输出,IDLE会挂起。为了避免这种情况,Squeezer   扩展捕获超过80行文本的任何输出(可配置)和   而是显示一个矩形框:

Squeezer和许多其他IDLE扩展包含在IdleX中。