কম্পিউটার

পাইথন ক্লাসে আমরা কীভাবে সমতা ("সমতা") অপারেটর ব্যবহার করব?


যদি আমরা নিচের কোডের মতো ইক্যুইলিটি অপারেটর ব্যবহার করি, তাহলে আমরা আউটপুট হিসাবে মিথ্যা পাব

class Integer:
    def __init__(self, number):
        self.number = number

n1 = Integer(1)
n2 = Integer(1)
print bool(n1 == n2)

আউটপুট

False

এর কারণ হল পাইথন ডিফল্টভাবে তুলনা ক্রিয়াকলাপের জন্য অবজেক্ট শনাক্তকারী ব্যবহার করে:

এই সমস্যাটি কাটিয়ে উঠতে আমাদের অবশ্যই __eq__function

ওভাররাইড করতে হবে
class Integer:
    def __init__(self, number):
        self.number = number
    def __eq__(self, other):

       if isinstance(self, other.__class__):

          return self.__dict__ == other.__dict__

       return False
n1 = Integer(1)
n2 = Integer(1)
print bool (n1 == n2)
print bool (n1 != n2)

আউটপুট

True
True

Python 2.x এর জন্য, আমাদেরকে __ne__function ওভারাইড করতে হবে। Python 3.x এর জন্য এটি প্রয়োজনীয় নয়। ডকুমেন্টেশন অনুসারে নিম্নলিখিতটি সত্য।

ডিফল্টরূপে, __ne__() __eq__() তে প্রতিনিধিত্ব করে এবং ফলাফলটিকে উল্টে দেয় যদি না এটি বাস্তবায়ন না হয়। তুলনা অপারেটরদের মধ্যে অন্য কোন অন্তর্নিহিত সম্পর্ক নেই, উদাহরণস্বরূপ, (x

  1. উইন্ডোজে পাইথন কীভাবে ব্যবহার করবেন

  2. Tkinter Python এ থ্রেড কিভাবে ব্যবহার করবেন?

  3. কিভাবে Python এ FTP ব্যবহার করবেন?

  4. পাইথনে ল্যাম্বডা ফাংশন কীভাবে ব্যবহার করবেন?