有时我会使用IDLE中的数千个项目列表,并意外地将其打印到shell中。当发生这种情况时,它会崩溃或至少非常显着地减慢IDLE。可以想象,这非常不方便。 有没有办法制作它,而不是打印整个东西,只需给我一个总结[1,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

其他提示

使用 IPython 作为shell。

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

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

它会像:

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

IDLE的 Squeezer 扩展程序就是为此而编写的。从Pypi的描述:

  

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top