Pregunta

A veces estaré trabajando con, digamos, una lista de miles de elementos en IDLE, y accidentalmente la imprimiré en el shell. Cuando esto sucede, se bloquea o al menos ralentiza de manera muy significativa IDLE. Como puede imaginar, esto es extremadamente inconveniente. ¿Hay alguna manera de hacerlo, en lugar de imprimir todo, solo dame un resultado resumido [1, 2, ...]? Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Como arriba, intente una función de impresión personalizada como:

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

Otros consejos

Utilice IPython en su lugar.

Puede usar la función de impresión personalizada.

En Python 3, dado que imprimir es una función, debería poder '' anular '' eso. (No lo tengo instalado, así que no puedo probarlo para asegurarme). Probablemente no se recomiende para aplicaciones reales, pero si solo está probando, estaría bien, supongo.

Sería algo así como:

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

La extensión Squeezer para IDLE se escribió para hacer precisamente esto. De la descripción en Pypi:

  

IDLE puede bloquearse si se imprime una salida muy larga. Para evitar esto, el exprimidor   Las extensiones capturan cualquier salida de más de 80 líneas de texto (configurable) y   muestra un cuadro rectangular en su lugar:

Squeezer, y muchas otras extensiones IDLE están incluidas en IdleX .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top