जैसा कि अन्य जवाबों ने उल्लेख किया है, pprintएक महान मॉड्यूल है जो वह करेगा जो आप चाहते हैं। हालाँकि यदि आप इसे आयात नहीं करना चाहते हैं और विकास के दौरान डिबगिंग आउटपुट प्रिंट करना चाहते हैं, तो आप इसके आउटपुट का अनुमान लगा सकते हैं।
कुछ अन्य उत्तर तार के लिए ठीक काम करते हैं, लेकिन यदि आप उन्हें एक क्लास ऑब्जेक्ट के साथ आज़माते हैं तो यह आपको त्रुटि देगा TypeError: sequence item 0: expected string, instance found।
अधिक जटिल वस्तुओं के लिए, सुनिश्चित करें कि कक्षा में एक __repr__विधि है जो आपके द्वारा वांछित संपत्ति की जानकारी प्रिंट करती है:
class Foo(object):
def __init__(self, bar):
self.bar = bar
def __repr__(self):
return "Foo - (%r)" % self.bar
और फिर जब आप आउटपुट प्रिंट करना चाहते हैं, तो बस अपनी सूची को strइस तरह से फ़ंक्शन में मैप करें :
l = [Foo(10), Foo(20), Foo("A string"), Foo(2.4)]
print "[%s]" % ",\n ".join(map(str,l))
आउटपुट:
[Foo - (10),
Foo - (20),
Foo - ('A string'),
Foo - (2.4)]
तुम भी नेस्टेड सुंदर मुद्रण का एक रूप प्राप्त करने की __repr__विधि को ओवरराइड करने जैसी चीजें कर सकते हैं 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
देता है
[first,
2,
[another,
list,
here],
last]
दुर्भाग्य से कोई दूसरे स्तर का इंडेंटेशन नहीं है, लेकिन एक त्वरित डिबग के लिए यह उपयोगी हो सकता है।