2015-05-18 11 views
5

Czy mogę wydrukować dane w postaci wydrukowanej tak jak w pprint.pprint (nowe linie, wcięcia), ale także skrócić listy w tym samym czasie, co w przypadku reprlib.repr?Połączyć reprlib i pprint w Pythonie?

Brzydki hack wydaje się być pprint(eval(reprlib.repr(data))), ale czy istnieje lepszy sposób?

+0

dlaczego sam nie obciążysz listy? po prostu odwołaj się do 'list [0: max]' i skróci ją (aby wyjaśnić: nawet dla list o długości mniejszej niż maksymalna). Możesz nawet być fantazyjnym i "dodać (...)" na końcu. – Scelesto

+0

@Scelesto '0' jest domyślnym początkiem plastra, więc' list [: max] 'również działa. – jonrsharpe

+0

@ d33tah "repr to wbudowana funkcja Pythona, która zwraca kanoniczną reprezentację ciągów wejściowych" Nie chodzi o to pytanie. – vaultah

Odpowiedz

0

Możesz zmienić sposób drukowania obiektu, przesłonięcie metody __repr__() na jego klasie.

Python pozwoli Ci zastąpić repr dowolnej klasy, więc używaj go ostrożnie.