পাইথন কমেন্টস (Comments)

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 23 নভে., 2024


পাইথন প্রোগ্রাম লিখার ক্ষেত্রেকমেন্টস’ এর গুরুত্বপূর্ণ ভূমিকা রয়েছে। এটি কোডের পারফর্মেন্স সম্পর্কে তথ্য দেয়, একটি নির্দিষ্ট লাইনকে ব্যাখ্যা করে, এবং প্রোগ্রামকে অনেক বেশি রিডেবল (readable) করে। ফলে এর সাহায্যে প্রোগ্রামারদের জন্য কোড বুঝা সহজ হয়। কোডের একটি নির্দিষ্ট লাইন কমেন্ট করার অর্থ হলো: লাইনটি অমিট (বন্ধ) করে রাখা, যাতে পাইথন ইন্টারপ্রেটার এটি না পড়ে স্কিপ করে চলে যায়। সুতরাং কোডের যে লাইনটি কমেন্ট করা থাকে সেটি কোডের অংশ নয়, শুধুমাত্র প্রোগ্রামারদের বুঝার সুবিধার্থে এটি করা হয়। আপনি চাইলে একটি লাইন অথবা একসাথে অনেকগুলো লাইন   কমেন্ট করে রাখতে পারেন। নিচে আমরা সিঙ্গেল-লাইন কমেন্ট এবং মাল্টি-লাইন কমেন্টের উদাহারণ দেখব।

 

সিঙ্গেল-লাইন কমেন্ট (Singel-line comment)

সিঙ্গেল-লাইন কমেন্টের ক্ষেত্রে হ্যাশ ( # ) চিহ্নটি ব্যবহৃত হয়। কোডের কোন একটি লাইনের শুরুতে ‘#’ চিহ্ন দিলে লাইনটি অমিট হয়ে যায়, তখন এটি আর কোডের অংশ থাকে না। নিচের কোডে হ্যাশ # চিহ্ন ব্যবহার করে একটি লাইন কমেন্ট করে দেখানো হলো।

কোড:

message1 = 'Bangladesh is our homeland'

# message2 = 'Dhaka is the capital of Bangladesh'    # লাইনটি কমেন্ট (অমিট) করা

print('message1: ', message1)

print('message2: ', message2)

 

উপরের কোডের প্রথম লাইনে message1 ভ্যারিয়েবল এর মধ্যে 'Bangladesh is our homeland' স্ট্রিংটি এসাইন করা হয়েছে। দ্বিতীয় লাইনে message2 ভ্যারিয়েবল এর মধ্যে 'Dhaka is the capital of Bangladesh' স্ট্রিংটি এসাইন করা হয়েছে। যেহেতু আমি লাইনটি (হ্যাশচিহ্ন ব্যবহার করে) কমেন্ট করে রেখেছি, তাই এটি কোডের মধ্যে গণ্য হবে না এবং ইন্টারপ্রেটার এটি না পড়ে স্কিপ করে চলে যাবে। তৃতীয় লাইনে প্রথম স্ট্রিংটি প্রিন্ট করেছি। তবে চতুর্থ লাইনে দ্বিতীয় স্ট্রিংটি প্রিন্ট করতে গেলে পাইথন একটি এরর মেসেজ (NameError: name 'message2' is not defined) দিয়েছে, যার অর্থ হলো: message2 ভ্যারিয়েবলটি ডিফাইন করা হয়নি, (কারণ লাইনটি কমেন্ট করার কারণে ইন্টারপ্রেটার এটি খুঁজে পাচ্ছে না। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

message1:  Bangladesh is our homeland

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'message2' is not defined

 

কোডের কোন একটি লাইনের শেষে  # চিহ্ন ব্যবহার করা যায়, এতে উক্ত লাইনের অবশিষ্ট অংশ  কমেন্ট হয়ে যাবে।

কোড:

number1 = 10

number2 = 100 # This is number2.

print('number1: ', number1)

print('number2: ', number2)

 

উপরের কোডের প্রথম লাইনে number1 ভ্যারিয়েবল এর মধ্যে 10 এসাইন করা হয়েছে। দ্বিতীয় লাইনে number2 ভ্যারিয়েবল এর মধ্যে 100 এসাইন করা হয়েছে, এবং এরপরে হ্যাশচিহ্ন ব্যবহার করে উক্ত লাইনের অবশিষ্ট অংশ কমেন্ট করা হয়েছে। তাই অবশিষ্ট  অংশ টি কোডের মধ্যে গণ্য হবে না এবং ইন্টারপ্রেটার এটি না পড়ে স্কিপ করে চলে যাবে। তৃতীয় লাইনে প্রথম নাম্বারটি প্রিন্ট করা হয়েছে। চতুর্থ লাইনে দ্বিতীয় নাম্বারটি প্রিন্ট করা হয়েছে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

number1:  10

number2:  100

 

মাল্টি-লাইন কমেন্ট (Multi-line comment)

একাধিক (অনেকগুলো) লাইন কমেন্ট করতে প্রত্যেকটা লাইনের শুরুতে হ্যাশ # চিহ্ন ব্যবহার করা যায়, তবে এ পদ্ধতিটি কনভিনিয়েন্ট  (সুবিধাজনক) নয়। পরবর্তী উদাহরণে আমি আরেকটি কনভিনিয়েন্ট পদ্ধতি দেখাব। নিচের কোডে হ্যাশ # চিহ্ন ব্যবহার করে অনেকগুলো লাইন কমেন্ট করে দেখানো হলো।

কোড:

# 'Python is a computer programing language.'

# 'Django is a framework of Python.'

# 'Flask is another framework of Python.'

# 'Python framework is used for real life web application.'

text = 'Python is a computer programing language, Django and Flask are its framework those are used for real life web application.'

print('text: ', text)

 

উপরের কোডের প্রথম চারটি লাইন আমি কমেন্ট করে রেখেছি, এবং প্রত্যেকটা লাইনের শুরুতে হ্যাশ # চিহ্ন ব্যবহার করেছি। সুতরাং এগুলো কোডের অংশ হিসাবে গণ্য হবে না এবং ইন্টারপ্রেটার এগুলো স্কিপ করবে (পড়বে না)। তবে পঞ্চম লাইনটি কমেন্ট করিনি, তাই এটি প্রিন্ট হবে এবং এ কাজটি হবে ষষ্ঠ লাইনে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

text:  Python is a computer programing language, Django and Flask are its framework those are used for real life web application.

 

যতক্ষণ পর্যন্ত কোন স্ট্রিংকে নির্দিষ্ট ভ্যারিয়েবলের মধ্যে এসাইন করা না হয়, ততক্ষণ পর্যন্ত পাইথন শুধু এটাকে পড়ে যায় কিন্তু স্ট্রিং হিসাবে গণ্য করে না। তখন এটি মাল্টি-লাইন কমেন্ট হিসাবে বিবেচিত হয়।

উপরের কাজটি (মাল্টি-লাইন কমেন্ট) তিনটি সিঙ্গেল কোটেশন ''' ''' অথবা তিনটি ডবল কোটেশন """ """ ব্যাবহার করেও করা যায়। ক্ষেত্রে অনেকগুলো লাইন ''' ''' অথবা """ """ এর মধ্যে রাখলে সেগুলো কমেন্ট (অমিট) হয়ে যাবে, এবং কোডের অংশ হিসাবে গণ্য হবে না। এ পদ্ধতিটি সাধারণত মাল্টি-লাইন স্ট্রিং এর ক্ষেত্রে ব্যবহৃত হয়। মাল্টি-লাইন স্ট্রিং কে কমেন্ট করার পরে এটি ‘মাল্টি-লাইন কমেন্ট’ হিসাবে গন্য হবে, মাল্টি-লাইন স্ট্রিং হিসাবে নয়। নিচের কোডে ''' ''' ব্যবহার করে তিনটি লাইন কমেন্ট করে দেখানো হলো।

 

 

বিশেষ দ্রষ্টব্য: ডক স্ট্রিং (Doc string) সম্পর্কে আমি পরবর্তীতে বিস্তারিত আলোচনা করব।

উপরের কোডের প্রথম তিনটি লাইন আমি কমেন্ট করে রেখেছি, (এবং লাইনগুলো তিনটি সিঙ্গেল কোটেশন এর মধ্যে রেখেছি)। সুতরাং এগুলো কোডের অংশ হিসাবে গণ্য হবে না এবং ইন্টারপ্রেটার এগুলো স্কিপ করবে (পড়বে না)। তবে চতুর্থ লাইনটি কমেন্ট করিনি, তাই এটি প্রিন্ট হবে এবং এ কাজটি হবে পঞ্চম লাইনে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

message:  Python is one of the best programing language.

 

0