Diğer cevapların da bahsettiği gibi, pprintistediğinizi yapacak harika bir modül. Ancak, içeri aktarmak istemiyorsanız ve geliştirme sırasında yalnızca hata ayıklama çıktısını yazdırmak istiyorsanız, çıktısını yaklaşık olarak tahmin edebilirsiniz.
Diğer yanıtlardan bazıları dizeler için iyi çalışıyor, ancak bunları bir sınıf nesnesiyle denerseniz, size hata verecektir TypeError: sequence item 0: expected string, instance found.
Daha karmaşık nesneler için, sınıfın __repr__istediğiniz özellik bilgilerini yazdıran bir yöntemi olduğundan emin olun :
class Foo(object):
def __init__(self, bar):
self.bar = bar
def __repr__(self):
return "Foo - (%r)" % self.bar
Ardından çıktıyı yazdırmak istediğinizde, listenizi aşağıdaki strgibi işlevle eşleştirmeniz yeterlidir :
l = [Foo(10), Foo(20), Foo("A string"), Foo(2.4)]
print "[%s]" % ",\n ".join(map(str,l))
çıktılar:
[Foo - (10),
Foo - (20),
Foo - ('A string'),
Foo - (2.4)]
Ayrıca , iç içe geçmiş hoş bir yazdırma biçimi elde etme __repr__yöntemini geçersiz kılmak gibi şeyler de yapabilirsiniz list:
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
verir
[first,
2,
[another,
list,
here],
last]
Maalesef, ikinci düzey girinti yok, ancak hızlı bir hata ayıklama için faydalı olabilir.