কম্পিউটার টিউটোরিয়াল

পাইথনে অপারেটর ওভারলোডিং কীভাবে কাজ করে?


আমরা জানি + অপারেটর ব্যবহার করে সংখ্যা যোগ করা যায় এবং একই সাথে স্ট্রিং কনক্যাটেনেট ও করা যায়। এটি সম্ভব হয় কারণ + অপারেটর int ক্লাস এবং str ক্লাস দুটোই দ্বারা ওভারলোডেড। অপারেটরগুলো মূলত সংশ্লিষ্ট ক্লাসে ডিফাইন করা মেথড। অপারেটরদের জন্য মেথড ডিফাইন করার কে অপারেটর ওভারলোডিং বলা হয়। উদাহরণস্বরূপ, কাস্টম অবজেক্টের সাথে + অপারেটর ব্যবহার করতে হলে __add__ নামের একটি মেথড ডিফাইন করতে হয়।

উদাহরণ

নিচের কোডটি অপারেটর ওভারলোডিং কীভাবে কাজ করে তা বোঝাতে সহজ করবে

import math
class Circle:
    def __init__(self, radius):
        self.__radius = radius
    def setRadius(self, radius):
        self.__radius = radius
    def getRadius(self):
        return self.__radius
    def area(self):
        return math.pi * self.__radius ** 2
    def __add__(self, another_circle):
        return Circle( self.__radius + another_circle.__radius )
c1 = Circle(3)
print(c1.getRadius())
c2 = Circle(6)
print(c2.getRadius())
c3 = c1 + c2 # This is because we have overloaded + operator by adding a method __add__
print(c3.getRadius())

আউটপুট

এটি আউটপুট দেবে

3
6
9

একটি অপারেটরের বিহেভিয়র মডিফাই করা যাতে সেটি ইউজার-ডিফাইনড টাইপের সাথে কাজ করে, তাকে অপারেটর ওভারলোডিং বলা হয়। পাইথনে প্রতিটি অপারেটরের জন্য একটি відпов_SPESIAL মেথড রয়েছে, যেমন __add__। আরও ডিটেইলের জন্য docs.python.org/ref/specialnames.html দেখুন।



  1. পাইথনে লিস্টের ওপর in অপারেটর কীভাবে কাজ করে?

  2. পাইথনে লিস্টের ওপর * (স্টার) অপারেটর কীভাবে কাজ করে?

  3. পাইথন রেগুলার এক্সপ্রেশনে \B (নন-ওয়ার্ড বাউন্ডারি) এর কাজ

  4. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার ও অর্থ