কম্পিউটার টিউটোরিয়াল

পাইথনে অস্পষ্ট ইন্ডেন্টেশন (Indentation) সনাক্ত করা


ইন্ডেন্টেশন (Indentation) পাইথন সিনট্যাক্সের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য। ফাংশন, ক্লাস বা লুপের কোড ব্লকে থাকা স্টেটমেন্টগুলোর একই ইন্ডেন্ট লেভেল মেনে চলতে হয়। পাইথনের স্ট্যান্ডার্ড লাইব্রেরির tabnanny মডিউলটি এই নিয়মের যেকোনো লঙ্ঘন সনাক্ত করতে পারে।

এই মডিউলটি মূলত কমান্ড লাইন মোডে -m সুইচ দিয়ে ব্যবহার করার জন্য তৈরি। তবে এটি ইন্টারপ্রেটার সেশনে ইম্পোর্ট করেও ব্যবহার করা যায়।

কমান্ড লাইন ব্যবহার

python -m tabnanny -q example.py

বার্বোজ আউটপুটের জন্য -v সুইচ ব্যবহার করুন:

python -m tabnanny -v example.py

tabnanny মডিউলে প্রোগ্রাম্যাটিক্যালি ইন্ডেন্টেশন চেক করার জন্য নিচের ফাংশনগুলো সংজ্ঞায়িত:

check()

এই ফাংশনটি একটি দেওয়া ফাইলে অস্পষ্টভাবে ইন্ডেন্ট করা লাইন চেক করে। আপনি একটি ডিরেক্টরিও প্যারামিটার হিসেবে দিতে পারেন। সেটার সব ফাইল রিকার্সিভলি চেক হবে।

উদাহরণ

import tabnanny
tabnanny.check('example.py')

tabnanny.verbose − এই ফ্ল্যাগটি ইঙ্গিত দেয় যে ভার্বোজ মেসেজ প্রিন্ট করা হবে কিনা। স্ক্রিপ্ট হিসেবে কল করলে -v অপশন দ্বারা এটি ইনক্রিমেন্ট হয়।

tabnanny.filename_only − এই ফ্ল্যাগটি ইঙ্গিত দেয় যে কেবল ফাইলনেম প্রিন্ট করা হবে কিনা যেসব ফাইলে হোয়াইটস্পেস সম্পর্কিত সমস্যা আছে। স্ক্রিপ্ট হিসেবে কল করলে -q অপশন দ্বারা এটি true সেট হয়।

process_tokens() −

এই ফাংশনটি check() দ্বারা ব্যবহৃত হয় tokenize মডিউল দ্বারা জেনারেট করা টোকেন প্রসেস করার জন্য। যদি অস্পষ্ট ইন্ডেন্ট সনাক্ত হয়, তবে এই ফাংশনটি NannyNag এক্সেপশন রেইজ করে। এটি check()-এ ক্যাপচার ও হ্যান্ডেল হয়।

  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে OpenCV দিয়ে লাইন ডিটেকশন (Line Detection in Python with OpenCV)

  3. পাইথনে ইনডেন্টেশন (Indentation) কেন গুরুত্বপূর্ণ?

  4. সমাধান: Python Indentation Error