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 :) .

পাইথনে 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") এই কমান্ড দিয়ে একটি মাত্র ফোল্ডার বানাতে পারবেন।  ফোল্ডারটি তৈরি হবে যে ডিরেক্টরি তে আপনি...

কিভাবে Django তে চেঞ্জ পাসওয়ার্ড ভিউ Create করতে হয় ?

ইউসার প্রোফাইল থাকলে পাসওয়ার্ড চেঞ্জ এর অপশনের দরকার হয়।  Django তে বিল্ট ইন PasswordChangeForm ব্যবহার  করে খুব সহজে এই অপশন আনা যায়।  এজন্য  ফাঙ্কশন বেসড ভিউ ব্যবহার করা ভালো কারণ PasswordChangeForm , ModelForm কে ইনহেরিট করে না এবং ইউসার আর্গুমেন্ট কন্সট্রাক্টর হিসেবে নেয় . আমরা views.py এভাবে লিখতে পারি from django.contrib.auth import update_session_auth_hash from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import PasswordChangeForm from django.shortcuts import render, redirect @login_required def change_password(request):     if request.method == 'POST':         form = PasswordChangeForm(request.user, request.POST)         if form.is_valid():             user = form.save()             update_session_auth_hash(request, user)                     ...