অন্যান্য উত্তরের হিসাবে উল্লেখ করা হয়েছে, 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]
দুর্ভাগ্যক্রমে দ্বিতীয় স্তরের কোনও ইন্ডেন্টেশন নয় তবে দ্রুত ডিবাগের জন্য এটি কার্যকর হতে পারে।