পাইথন একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ। পাইথনে প্রায় সবকিছুই একটি অবজেক্ট হিসেবে বিবেচিত হয়। একটি অবজেক্টের নিজস্ব প্রোপার্টি (attributes) এবং বিহেভিয়র (methods) থাকে।
একটি ক্লাস হলো অবজেক্টের ব্লুপ্রিন্ট (blueprint) বা অবজেক্ট কনস্ট্রাক্টর বলতে পারেন যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়।
একটি ক্লাসের অনেক অবজেক্ট থাকতে পারে এবং ভিন্ন অবজেক্টের জন্য প্রোপার্টির মান ভিন্ন হতে পারে।
অবজেক্টের প্রোপার্টি এবং বিহেভিয়রের উদাহরণ
গাড়ি (car) কে একটি অবজেক্ট হিসেবে ধরি। এর প্রোপার্টি হবেঃ রং, কোম্পানির নাম, নির্মাণের বছর, দাম, মাইলেজ ইত্যাদি। গাড়ির বিহেভিয়র হবেঃ এটি যা যা ফাংশন পারফর্ম করতে পারে, যেমন স্পিড বাড়ানো, স্পিড কমানো, ব্রেক লাগানো ইত্যাদি। অবজেক্ট মূলত বাস্তব জীবনের অবজেক্টের সাথে সবকিছু রিলেট করে। বাস্তব জীবনে আমরা যা যা দেখি সবকuchur কিছু প্রোপার্টি এবং কিছু ফাংশন থাকে।
ক্লাস এবং অবজেক্টের উদাহরণ
একই ক্লাসের ভিন্ন অবজেক্টের প্রোপার্টি ভিন্ন হতে পারে। উদাহরণস্বরূপ, Person (মানুষ) কে একটি ক্লাস হিসেবে ধরা যাক যার প্রোপার্টি আছে: নাম, বয়স, লিঙ্গ ইত্যাদি। প্রতিটি ব্যক্তিকে ক্লাস Person বা Human-এর একটি অবজেক্ট হিসেবে ধরা যাক। প্রতিটি ব্যক্তির ক্লাস Person-এর প্রোপার্টির মান ভিন্ন হবে। সবার নাম, বয়স এবং লিঙ্গ ভিন্ন।
ইনস্ট্যানশিয়েশন (Instantiation) কি?
একটি অবজেক্টকে ক্লাসের একটি ইনস্ট্যান্স (instance) ও বলা হয়। তাই একটি ক্লাসের অবজেক্ট তৈরির প্রক্রিয়াকেই ইনস্ট্যানশিয়েশন বলা হয়।
পাইথনে ক্লাস ডিফাইন করা
যেমন পাইথনে ফাংশন def কিওয়ার্ড দিয়ে ডিফাইন করা হয়। ক্লাস ডিফাইন করার জন্য class কিওয়ার্ড ব্যবহার করা হয়। যেহেতু ক্লাস হলো অবজেক্টের ব্লুপ্রিন্ট, সारे কমন অ্যাট্রিবিউট এবং মেথড ক্লাসের ভেতরে ডিক্লেয়ার এবং ডিফাইন করা হয়। ক্লাস থেকে তৈরি ভিন্ন অবজেক্ট সেই প্রোপার্টি এবং ফাংশনগুলো অ্যাক্সেস করতে পারে। ভিন্ন অবজেক্ট ক্লাসের ভেতরে ডিফাইন করা প্রোপার্টির জন্য নিজস্ব মান ধারণ করতে পারে।
পাইথনে অবজেক্ট তৈরি করা
একটি ক্লাসের অবজেক্ট তৈরি করা সহজ। ক্লাসের নাম জানতে হবে এবং অবজেক্ট নিচের মত করে তৈরি করা যায়:
Object_name = class_name()
উদাহরণ
class Person:
name = ""
age = 0
city = ""
def display(self):
print("Name : ", self.name)
print("Age : ", self.age)
print("City : ", self.city)
p1 = Person()
p1.name = "Rahul"
p1.age = 20
p1.city = "Kolkata"
p1.display()
print()
p2 = Person()
p2.name = "Karan"
p2.age = 22
p2.city = "Bangalore"
p2.display()
print()
p1.display()
উপরের ইমপ্লিমেন্টেশনে, p1 = Person() হলো অবজেক্ট ইনস্ট্যানশিয়েশন। p1 হলো অবজেক্টের নাম। আমরা অবজেক্ট p1 দিয়ে ক্লাসের প্রোপার্টিগুলো অ্যাক্সেস করেছি এবং সেগুলোকে ভিন্ন মান দিয়ে পরে display ফাংশন কল করেছি এই অবজেক্টের মান দেখাতে। পরে আমরা দ্বিতীয় অবজেক্ট p2 এর জন্য একই কাজ করেছি এবং p2-এর প্রোপার্টি দেখিয়েছি।
শেষে, আমরা আবার অবজেক্ট p1 এর জন্য display() কল করেছি যাতে দেখা যায় প্রতিটি অবজেক্ট প্রোপার্টির নিজস্ব মান ধারণ করে এবং সেগুলো অন্যান্য অবজেক্ট থেকে স্বতন্ত্র।
আউটপুট
Name : Rahul Age : 20 City : Kolkata Name : Karan Age : 22 City : Bangalore Name : Rahul Age : 20 City : Kolkata