2015-05-18 4 views
5

Kann ich hübsch gedruckte Datenausgabe wie in pprint.pprint (neue Zeilen, Einrückung), aber auch gekürzte Listen wie in reprlib.repr zur gleichen Zeit haben?Kombinieren Sie Replib und Pprint in Python?

Ein hässlicher Hack scheint pprint(eval(reprlib.repr(data))) zu sein, aber gibt es einen besseren Weg?

+0

warum schneiden Sie nicht einfach die Liste selbst? referenzieren Sie einfach 'list [0: max]' und es wird gekürzt (zur Verdeutlichung: auch für Listen mit weniger als maximaler Länge). Sie können sogar ausgefallen sein und am Ende "anhängen" (...). – Scelesto

+0

@Scelesto '0' ist der Standard-Slice-Start, also' list [: max] 'funktioniert auch. – jonrsharpe

+0

@ d33tah "repr ist eine eingebaute Python-Funktion, die die kanonische String-Darstellung ihrer Eingabe zurückgibt." Die Frage ist nicht danach. – vaultah

Antwort

0

Sie können die Art ändern, in der ein Objekt gedruckt wird, indem Sie die __repr__()-Methode für seine Klasse überschreiben.

Python ermöglicht es Ihnen, die repr jeder Klasse zu überschreiben, also verwenden Sie es mit Vorsicht.