পাইথন প্রোগ্রামিংয়ে ইনহেরিটেন্স তৈরি করা
ইনহেরিটেন্স অবজেক্ট অরিয়েন্টেড প্রোগ্রামের একটি অন্যতম বৈশিষ্ট্য। ইনহেরিটেন্স হচ্ছে এমন একটি পদ্ধতি, যেখানে একটি ক্লাসের বিভিন্ন ফাংশনালিটিকে অন্য একটি ক্লাসে সংযুক্ত করা যায়। যে ক্লাসের ফাংশনালিটিকে সংযুক্ত করা হয় তাকে বেজ ক্লাস বা প্যারেন্ট ক্লাস বলা হয় এবং যে ক্লাসে সংযুক্ত করা হয় তাকে সাবক্লাস বা চাইল্ড ক্লাস বলা হয়। ইনহেরিটেন্স একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, এর মাধ্যমে একটি ক্লাসের মেথড এবং এট্রিবিউটসমূহকে এক বা একাধিক সাবক্লাস শেয়ার করতে পারে। ইনহেরিটেন্স কোড রিইউজিবিলিটি বৃদ্ধি করে। পূর্বে তৈরিকৃত Person ক্লাসকে ইনহেরেট করে আমরা Person_choice নামে একটি নতুন ক্লাস তৈরি করব। এই নতুন ক্লাস থেকে আমরা প্যারেন্ট ক্লাসের বিভিন্ন এট্রিবিউট বা মেথডকে ব্যবহার করব।
প্যারেন্ট ক্লাসের এট্রিবিউট এবং মেথড ছাড়াও নতুন ক্লাসটির নিজস্ব কিছু এট্রিবিউট এবং মেথড থাকবে। নতুন ক্লাসের এট্রিবিউট এবং মেথডকে কীভাবে ব্যবহার করা যায় সে পদ্ধতিও আমরা দেখব। এবার ক্লাসটি তৈরি করার পদ্ধতি দেখা যাক।
class Person:
def __init__(self,name,age,game):
self.name=name
self.age=age
self.game=game
def per_info(self):
print('Name:',self.name,
'Age:',self.age)
def per_play(self):
print(self.name,
'play',self.game)
class Person_choice(Person):
def __init__(self,name,age,
game,hobby,color):
self.name=name
self.age=age
self.game=game
self.hobby=hobby
self.color=color
def per_hobby(self):
print(self.name,
'likes',self.hobby)
def per_color(self):
print(self.name,'like',
self.color,'color')
আমরা Person_choice নামে একটি নতুন ক্লাস তৈরি করেছি, যা ইনিশিয়ালাইজ করার সময় চারটি প্যারামিটার গ্রহণ করবে। অতপর উক্ত প্যারামিটারসমূহকে ক্লাসের এট্রিবিউট হিসেবে সেট করবে। এটি যেহেতু Person ক্লাসকে ইনহেরিট করবে, তাই ক্লাসের নামের সাথে ব্রাকেটের ভেতর প্যারেন্ট ক্লাসের নাম দেয়া হয়েছে। যখন প্যারেন্ট ক্লাসের কোনো মেথডকে কল করা হবে, তখন চাইল্ড ক্লাস হতে রিলেটেড প্যারামিটারসমূহ প্যারেন্ট ক্লাসের প্যারামিটার হিসেবে ব্যবহার হবে। চাইল্ড ক্লাসে per_hobby এবং per_color নামে আমরা নতুন দুটি মেথড সংযুক্ত করেছি। এবার new_per1 নামেPerson_choice ক্লাসের একটি অবজেক্ট তৈরি করা যাক।
new_per1=Person_choice('Mizan',35,
'Football','Reading','Blue')
new_per1 অবজেক্টটি তৈরি হয়ে গেলে উক্ত অবজেক্ট হতে প্যারেন্ট ক্লাসের এবং সাবক্লাসের বিভিন্ন এট্রিবিউট এবং মেথডসমূহ ব্যবহার করা যাবে।
প্যারেন্ট বা বেজ ক্লাসের বিভিন্ন মেথড ব্যবহার করা
চাইল্ড বা সাবক্লাসের বিভিন্ন মেথড ব্যবহার করা
এবার আমরা Shape নামে একটি প্যারেন্ট ক্লাস তৈরি করব। অতপর উক্ত প্যারেন্ট ক্লাস থেকে দুটি চাইল্ড ক্লাস তৈরি করব, যারা প্যারেন্ট ক্লাসের এট্রিবিউট এবং মেথডকে ব্যবহার করে Rectangle এবং Square-এর Area এবং Perimeter বের করবে।
class Shape:
def __init__(self,x,y):
self.x=x
self.y=y
def area(self):
result=self.x * self.y
print ('Area:',result)
def perimeter(self):
result=2* self.x+2 * self.y
print ('Perimeter:',result)
class Rectangle(Shape):
def __init__(self,x,y):
self.x=x
self.y=y
class Square(Shape):
def __init__(self,x):
self.x=x
self.y=x
০ টি মন্তব্য