Seperti jawaban lain yang telah disebutkan, pprintini adalah modul hebat yang akan melakukan apa yang Anda inginkan. Namun jika Anda tidak ingin mengimpornya dan hanya ingin mencetak keluaran debugging selama pengembangan, Anda dapat memperkirakan keluarannya.
Beberapa dari jawaban lain berfungsi dengan baik untuk string, tetapi jika Anda mencobanya dengan objek kelas, itu akan memberi Anda kesalahan TypeError: sequence item 0: expected string, instance found.
Untuk objek yang lebih kompleks, pastikan kelas memiliki __repr__metode yang mencetak informasi properti yang Anda inginkan:
class Foo(object):
def __init__(self, bar):
self.bar = bar
def __repr__(self):
return "Foo - (%r)" % self.bar
Dan kemudian ketika Anda ingin mencetak hasilnya, cukup petakan daftar Anda ke strfungsi seperti ini:
l = [Foo(10), Foo(20), Foo("A string"), Foo(2.4)]
print "[%s]" % ",\n ".join(map(str,l))
keluaran:
[Foo - (10),
Foo - (20),
Foo - ('A string'),
Foo - (2.4)]
Anda juga bisa melakukan hal-hal seperti mengganti __repr__metode listuntuk mendapatkan bentuk pencetakan cantik bersarang:
class my_list(list):
def __repr__(self):
return "[%s]" % ",\n ".join(map(str, self))
a = my_list(["first", 2, my_list(["another", "list", "here"]), "last"])
print a
memberi
[first,
2,
[another,
list,
here],
last]
Sayangnya tidak ada indentasi tingkat kedua tetapi untuk debug cepat dapat berguna.