পাইথনে কিছু বিশেষ মেথড আছে যেগুলোর নাম নির্দিষ্ট। এগুলোকে ম্যাজিক মেথডও বলে। এরকম একটি মেথড হল __init()__ মেথড। এই লেখাতে আমরা __init()__ মেথড সম্পর্কে জানবো।
একটি ক্লাসের অবজেক্ট তৈরি করে সেই অবজেক্ট ব্যবহার করে কিভাবে ক্লাসের কাছে ডাটা রাখা যায় তা আপনারা দেখেন আগে অধ্যায়ে। নিচে আমরা আমাদের সেই মানুষ তৈরির ক্লাসটা আবার দেখি।
class Human:
def properties(self,name,age,height):
self.name = name
self.age = age
self.height = height
এখন আমরা এই ক্ষেত্রে শুরুতে h1 = Human() নামে একটা অবজেক্ট তৈরি করতে পারি। তারপর h1.properties("mamun",23,5) লিখে ক্লাসের attribute গুলোতে ডাটা জমা রাখতে পারি।
তবে ডাটা জমা রাখার এই কাজটা কিন্তু আমরা শুরুতেই করতে পারি। যদি __init()__মেথড ব্যবহার করি তাহলে শুরুতেই argument গুলো দিয়ে অবজেক্ট তৈরি করতে পারবো। C++ এর ক্ষেত্রে একে constructor বলে। এই মেথড ব্যবহার করা হয় কোনো অবজেক্ট তৈরি করার সাথে সাথেই কিছু ডাটা ক্লাসের মধ্যে দিয়ে আরম্ভ করার জন্য।
কিন্তু আমরা সেক্ষেত্রে properties() মেথডটা আমরা বাদ দিতে পারি।
class Human:
def __init__(self,name,age,height):
self.name = name
self.age = age
self.height = height
এখন আমরা এভাবে অবজেক্ট তৈরি করতে পারবো।
h1 = Human("mamun",23,5)
এই ক্ষেত্রে আমরা শুরুতেই data দিয়ে একটা মানুষ তৈরি করে ফেলছি। এই ধরনের initialization বা আরম্ভ আমাদের কাজ আরও সহজ করে দিচ্ছে।
এবার চলুন আমরা ক্লাসটা এমনভাবে বানাই যাতে আমরা মানুষটাকে কথা বলাতে পারি। অর্থাৎ, কথা বলার মত করে মানুষটা স্ক্রিনে আমাদের জন্য নিজের সম্পর্কে কিছু প্রিন্ট করে দিবে।
সেক্ষেত্রে আমরা ক্লাসের মধ্যে talk নামে একটা মেথড বানাবো এবং ক্লাসের __init()__ মেথডে থাকা attribute গুলো ব্যবহার করবো। সেক্ষেত্রে পুরো কোডটা এমন হবে।
class Human:
def __init__(self,name,age,height):
self.name = name
self.age = age
self.height = height
def talk(self):
print("Hi, I'm",self.name+". I'm",self.age,"years old. I'm",self.height,"ft tall. Isn't it enough for a basketball player?")
h = Human("Synthia", 23,6)
h.talk()
এখানে আমরা h নামে একটা অবজেক্ট তৈরি করেছি শুরুতেই ডাটা দিয়ে initialize করে। এবং পরে h.talk() ব্যবহার করে ক্লাসের talk() মেথডটা ব্যবহার করেছি।
এটার আউটপুট আসবে এরকমঃ
Hi, I'm Synthia. I'm 23 years old. I'm 6 ft tall. Isn't it enough for a basketball player?
আপনি নিজেও এরকম ক্লাস তৈরি করে বেশি বেশি প্রাকটিস করতে থাকুন। ক্লাসের মধ্যে মেথডের পরিমান বাড়ান, মজার মজার প্রোগ্রাম তৈরি করতে থাকুন। তাহলে এই পর্যন্ত যেটুকু বেসিক শেখানোর চেষ্টা করা হয়েছে তা ভালভাবে আয়ত্তে থাকবে।