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

পাইথনে রিভার্সড সেট অপারেটর ব্যবহার

রিভার্সড সেট অপারেটর হলো যেসব অপারেটরের রাইট অপারেন্ডের মেথড কল হয়। যেমন:

  • s & z → s.__and__(z)
  • z & s → s.__rand__(z) (রিভার্সড)

কখন কাজে লাগে

  1. ইনহেরিটেন্স/সাবক্লাসিং: ডানপাশের অপারেন্ড বামপাশের সাবক্লাস হলে রিভার্সড অপারেশন প্রথমে ট্রাই হয়। পেরেন্ট এবং চাইল্ড ক্লাসে আলাদা ইমপ্লিমেন্টেশন থাকতে পারে।
  2. NotImplemented ফলব্যাক: বামপাশের অপারেন্ড NotImplemented রিটার্ন করলে রিভার্সড অপারেশন ট্রাই হয়।

উদাহরণ

class A:
    def __and__(self, other):
        return "A.__and__"

class B(A):
    def __rand__(self, other):
        return "B.__rand__"

a = A()
b = B()

print(a & b)  # A.__and__ (b, B হলো A-এর সাবক্লাস না)
print(b & a)  # B.__rand__ (a, A হলো B-এর সাবক্লাস না, কিন্তু বামপাশ B)

সাধারণ অপারেশনে (int, str, etc.) রিভার্সড অপারেটরগুলো খুব কমই প্রয়োজন হয়, কারণ বিল্ট-ইন টাইপগুলো সিমেট্রিক্যালি বিহেভ করে।

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

  2. পাইথনে <code>PYTHONPATH</code> এনভায়রনমেন্ট ভেরিয়েবল কী?

  3. পাইথনে <code>import</code> স্টেটমেন্টের ব্যবহার

  4. পাইথনে assert স্টেটমেন্টের ব্যবহার