Python 我怎样才能停止空闲打印巨型列表?

Python 我怎样才能停止空闲打印巨型列表?,python,ide,editor,python-idle,Python,Ide,Editor,Python Idle,有时,我会处理,比如说,一个包含数千个空闲项的列表,然后意外地将其打印到shell中。当这种情况发生时,它会崩溃,或者至少会显著降低空闲时间。可以想象,这非常不方便。 有没有一种方法可以使它,而不是打印整个东西,只是给我一个总结[1,2,…]输出? 任何帮助都将不胜感激。请改用shell 您可以使用自定义打印功能。如上所述,尝试以下自定义打印功能: def my_print(obj): if hasattr(obj, '__len__') and len(obj) > 100:

有时,我会处理,比如说,一个包含数千个空闲项的列表,然后意外地将其打印到shell中。当这种情况发生时,它会崩溃,或者至少会显著降低空闲时间。可以想象,这非常不方便。 有没有一种方法可以使它,而不是打印整个东西,只是给我一个总结[1,2,…]输出?
任何帮助都将不胜感激。

请改用shell

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

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

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

在Python3中,由于print是一个函数,所以应该能够“覆盖”它。(我没有安装它,所以我不能尝试它以确保。)可能不推荐用于实际应用程序,但如果您只是尝试一下,我想这是可以的

它会是这样的:

def myprint(*args):
    # write the function as described by other people
print = myprint
IDLE的扩展就是为此编写的。根据Pypi的描述:

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


挤压器和许多其他空闲扩展都包含在其中。

我猜你指的是空闲,而不是IVLE。如果你“意外”打印东西,正如你所说,那么就没有什么可以做的了,因为即使是自定义打印函数也需要被有意调用。