Skip to main content

Constructor and Destructor in Python

পাইথন এ ডিফল্ট কিছু  মেথড আছে  যাদেরকে ম্যাজিক মেথড বলা হয়। এই  মেথড গুলা __ মেথড নাম __ দিয়ে লেখা হয় .( আন্ডার স্কোর আন্ডার স্কোর একসাথে ডান্ডার ও বলা যায় )

__init__():
এটাকে  কন্সট্রাক্টর বলা হয়।  কাজ কি ?
কাজ হলো যখন কোনো ক্লাস এর ইনস্ট্যান্স create  করা হয় তখন এই মেথড নিজে থেকে কল হয়।  যেমন আমার যদি একটা ক্যাট  ক্লাস নেই।


class Cat:
    def __init__(self, legs, colour):
        self.legs = legs
        self.color = color

    def get_name(self, name):
        return self.name = name
fido = Cat(4, "brown")
spot = Cat(3, "yellow")
এই  ক্লাস এ যদি আমরা ক্যাট এর নাম পেতে  চাই তাহলে আমাদের Cat ().get_name ("Mini") কল করতে হবে।  কিন্তু লেগ্স এন্ড কালার এর জন্য কিন্তু Cat ().get_name ("Mini") কল করা লাগসে না।  আমি যখন এ Cat(4, "brown")     initializeকরছি  তখনই  __init__  কল হইয়া গেসে ।

সাধারণত কোনো ক্লাস কল করার সাথে সাথে যদি কোনো ভ্যালু এসাইন করতে চাই তাহলে __init__ব্যবহার  করা হয়।

__del__():
অবজেক্ট ডেস্ট্রয় করার জন্য একটা ডেস্ট্রাক্টর মেথড ও আসে।  __del__ দিয়ে ডিফাইন করা হয়। ডেস্ট্রাক্টর normally refference  using gurbage কালেক্ট করে রাখে।  python ই অনেকে একে  ইভিল ও বলে থাকে হাঃ হাঃ ।  পাইথন এ অবজেক্ট ডেস্ট্রয় এর দরকার পরে না আসলে কারণ  স্কোপ এর বাইরে গালে এ অবজেক্ট ক্লিন হইয়া যাই।
class Cat:
    def __init__(self, legs, colour, id):
        self.legs = legs
        self.color = color
        self.id = id
        print("set ID")

    def __del__(self, id):
        print("destroy ID")
def
get_name(self, name): return self.name = name a = Cat(4, "black", 1) Cat().__del__(1)

Comments

Post a Comment

Popular posts from this blog

How to set auto save in Sublime text editor

1. Press Ctrl+Shift+P 2 Package install/install package 3.Search autosave 4. Click to install 5. Go to Preference -> Package setting -> Auto Save -> Settings User 6. Paste the code   // Auto save default setting { "auto_save_on_modified": true, "auto_save_delay_in_seconds": 1, "auto_save_all_file": true, "auto_save_current_file": "", "auto_save_backup": false, "auto_save_backup_suffix": "autosave" } 7. Save the file, close the file and finally done :) .

STL streamstring

এটি একটি স্ট্যান্ডার্ড টেম্প্লেট লাইব্রেরী । কি কাজে লাগে এটা ? হ্যাঁ , মাঝে মাঝে আমাদের প্রব্লেম সল্ভ এর জন্য একটা স্ট্রিংকে ভেঙ্গে আলাদা স্ট্রিং বানানোর প্রয়োজন পরে তখন এই পাপী টাকে কাজে লাগে। header : #include <sstream>     stringstream ss; //declare korlam   string s; //main string   string n; //new string   ss<<s;  //ss er moddhe rakhlam   while(ss>>n)  {//vanglam  cout<<n<<endl; } এভাবে লিখলে বুঝবা while(ss>>n){ //kisu nai loop ar moddhe} cout<<n<<endl; লাস্ট এর ওয়ার্ড টা প্রিন্ট হবে ।     আবার স্ট্রিং থেকে int এ নিতে গেলে ও এটা কাজে লাগাতে পার ।   ধর তোমার কাছে same to you 100 নামে একটা স্ট্রিং আছে । ১০০ কে int এ কনভার্ট করা লাগবে । তখন কি করবা ?? আগের প্রসেস এ ভেঙে নিয়ে তারপর    stringstream _in;    int Y;    _in<<n;    _in>>Y;  // অস্থির ভাব...

পাইথনে os মডিউল

কি কাজে লাগে :        os মডিউল ব্যবহার করে আমরা ডিরেক্টরি পরিবর্তন করতে পারি , ডিরেক্টরি তে রাখা ফাইলের নাম পরিবর্তন করতে পারি , কোন প্লাটফর্ম ব্যবহার করছি তা জানতে পারি।  শুধু মাত্র ২-৩ লাইন কোড লিখে হাজার হাজার ফোল্ডার বানাতে পারি।  এমনকি আমার প্রিয় গানটা ও প্লে করতে পারি। তাহলে দেখে নেই কিভাবে করবো। ওসি মডিউলে নিয়ে কাজ করতে গেলে আগে মডিউল  ইম্পোর্ট করে নিতে হবে এভাবে , import os আমি এখন কোন ডিরেক্টরি তে আছি আগে এইটা দেখি। os.getcwd() ডিরেক্টরি পরিবর্তন করতে হলে , os.chdir('path_name')  path_name = কোন পথ এ যেতে চান os.name দিয়ে কোন প্লাটফর্মে আছেন তার তথ্য পাবেন। ভ্যালু গুলা এভাবে দেখতে পাবেন   ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’. os.uname() দিলে সিস্টেম ডিপেন্ডেন্ট সকল ইনফরমেশন দেখাবে। ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’ এগুলা কি তা একটু গুগল করে গুগলের সাথে বন্ধুত্ব বাড়াতে পারেন 😋. os.mkdir("folder_name") এই কমান্ড দিয়ে একটি মাত্র ফোল্ডার বানাতে পারবেন।  ফোল্ডারটি তৈরি হবে যে ডিরেক্টরি তে আপনি...