क्लास समानता जाँचना
पिछले अभ्यास में, आपने BankAccount क्लास परिभाषित की थी जिसमें तुलना के लिए number एट्रिब्यूट इस्तेमाल हुआ था। लेकिन अगर आप BankAccount ऑब्जेक्ट की तुलना किसी दूसरी क्लास के ऑब्जेक्ट से करें जिसमें number एट्रिब्यूट भी मौजूद हो, तो नतीजे अप्रत्याशित हो सकते हैं.
उदाहरण के लिए, इन दो classes पर विचार करें
|
|
acct == pn चलाने पर True लौटेगा, जबकि यह एक फोन नंबर की तुलना बैंक अकाउंट नंबर से कर रहा है.
अच्छी प्रैक्टिस यह है कि __eq__() मेथड को पास किए गए ऑब्जेक्ट्स की class जाँच ली जाए ताकि तुलना सार्थक हो.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Object-Oriented Programming परिचय
अभ्यास निर्देश
BankAccountकी परिभाषा को ऐसा संशोधित करें कि वह केवल तभीTrueलौटाए जबnumberएट्रिब्यूट समान हो और उसे पास किए गए दोनों ऑब्जेक्ट्स काtype()भी समान हो.- जाँच करें कि
acctऔरpnबराबर हैं या नहीं.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class BankAccount:
def __init__(self, number, balance=0):
self.number, self.balance = number, balance
def withdraw(self, amount):
self.balance -= amount
# Modify to add a check for the class type
def __eq__(self, other):
return (self.number == other.number) ____
acct = BankAccount(873555333)
pn = Phone(873555333)
# Check if the two objects are equal
print(____)