Frage

Manchmal werde ich mit, sagen wir, eine Liste von Tausenden von Produkten in IDLE arbeiten, und es versehentlich an die Shell ausdrucken. Wenn dies geschieht, stürzt oder zumindest sehr significaly IDLE verlangsamt. Wie Sie sich vorstellen können, ist dies äußerst unbequem. Gibt es eine Möglichkeit, es zu machen, anstatt die ganze Sache Druck, gib mir nur einen zusammengefasst [1, 2, ...] Ausgang? Jede Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

Wie oben, versucht, eine benutzerdefinierte Druckfunktion wie:

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

Andere Tipps

Verwenden Sie IPython als Shell statt.

Sie können auch eigene Druckfunktion verwenden.

In Python 3, da Druck eine Funktion ist, sollte es möglich sein, es zu „überschreiben“. (Ich habe nicht installiert, so kann ich es nicht versuchen, um sicherzustellen.) Wahrscheinlich nicht für reale Anwendungen zu empfehlen, aber wenn Sie nur Dinge versuchen, wäre es in Ordnung sein nehme ich an.

Es würde so etwas wie:

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

Die Squeezer Erweiterung für IDLE geschrieben wurde genau dies zu tun. Aus der Beschreibung auf PyPI:

  

IDLE kann hängen, wenn sehr lange Ausgabe gedruckt wird. Um dies zu vermeiden, die Squeezer   Verlängerungen fangen jeden Ausgang mehr als 80 Zeilen Text (konfigurierbar) und   zeigt eine rechteckige Box statt:

Squeezer, und viele andere IDLE-Erweiterungen sind enthalten in IdleX .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top