python-basic

⌘K
  1. Home
  2. python-basic
  3. OOP
  4. ম্যাজিক মেথড

ম্যাজিক মেথড

পাইথন oop ক্লাসে এ কিছু ফাংশন এর নাম ডাবল আন্ডারস্কোর দিয়ে শুরু হয় এবং নামের পরে ডাবল আন্ডারস্কোর দিয়ে শেষ এই ফাংশন গুলোকে dunder মেথড বা স্পেশাল মেথড বলে। কিছু বিশেষ কাজ সম্পাদন করার জন্য এই মেথড গুলো ক্লাসে ব্যবহার করা হয়।

নিচে বহুল ব্যবহার কৃত কিছু মেথডের নাম দেয়া হলো

  • __init__(self, ...)
  • __str__(self)
  • __eq__(self, other)
  • __lt__(self, other)
  • __add__(self, other)

init(self, …)


__init__(self, ...) মেথডটি একটি ক্লাসের অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে ডাকা হয়। এটি অবজেক্টের অবস্থা সেট করতে ব্যবহৃত হয়।উদাহরণ:

Hello I Am Olee
gsm



আমরা কোন ক্লাসের অবজেক্ট তৈরির সময় __init _() ম্যাজিক মেথড ব্যবহার করে স্বয়ংক্রিয়ভাবে কিছু কার্য সম্পাদন করতে পারি। আমারা সাধারনত ক্লাসের প্রোপার্টির মান সেট করার জন্য __init _() ম্যাজিক মেথডটি ব্যবহার করি।


Hello I Am Olee
gsm

Output 👍

Hello I Am Olee
gsm
init() paramitar
Hello I Am Olee
gsm


Output 👍

Hello I Am Olee
gsm


str(self)

__str__(self) মেথডটি একটি অবজেক্টকে তার একটি মান হিসাবে প্রকাশ করতে ব্যবহৃত হয়। এটি যখন print() ফাংশন বা str() ফাংশন ব্যবহার করে একটি অবজেক্টকে মুদ্রিত করা হয় তখন ডাকা হয়।

প্রাক্টিক্যালি দেখি

নিচের ক্লাস টি একটি অবজেক্ট বানিয়ে অবজেক্ট টি প্রিন্ট মেথড দ্বারা প্রিন্ট করার চেষ্টা করি।

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y



point = Point(10, 20)

print(point)

Output:

<__main__.Point object at 0x7f86db1be550>

এবার ক্লাসের মধ্যে আমাদের str () ম্যাজিক মেথড টি কল করি এবং অবজেক্ট বানিয়ে অবজেক্ট টি প্রিন্ট করি

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"({self.x}, {self.y})"

point = Point(10, 20)

print(point)
# Output: (10, 20)

তার মানে str () ম্যাজিক মেথড এ যা প্রিন্ট করবো অবজেক্ট টি কোথাও প্রিন্ট করলে সেটাই শো করবে।

eq(self, other)

__eq__(self, other) মেথডটি দুটি অবজেক্ট সমান কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।

উদাহরণ:

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

point1 = Point(10, 20)
point2 = Point(10, 20)

print(point1 == point2)
# Output: True

lt(self, other)

__lt__(self, other) মেথডটি একটি অবজেক্ট অন্য অবজেক্ট থেকে ছোট কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।

উদাহরণ:

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __lt__(self, other):
        return self.x < other.x

point1 = Point(10, 20)
point2 = Point(20, 20)

print(point1 < point2)
# Output: True

add(self, other)

__add__(self, other) মেথডটি দুটি অবজেক্ট যোগ করতে ব্যবহৃত হয়।

উদাহরণ:

class Point:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)

point1 = Point(10, 20)
point2 = Point(20, 20)

point3 = point1 + point2

print(point3)
# Output: (30, 40)

এই ম্যাজিক মেথডগুলি পাইথনে object-oriented programming-এর একটি গুরুত্বপূর্ণ অংশ। এগুলি অবজেক্টগুলির আচরণ এবং পারফরম্যান্সকে প্রভাবিত করতে পারে।

How can we help?