Lesson — OOP

DOUBLE-UNDERSCORE
KA JAADU.

print(obj), len(obj), a + b — apni class ke liye ye sab tum sikha sakte ho. Magic methods se object smart banta hai.

⏱ 18 min• IntermediatePrerequisite: OOP Advanced

WHY: print(Bill) me kachra kyun

Apni class ka object print karo to <__main__.Bill object at 0x...> aata hai — bekaar. Magic methods (double-underscore wale) Python ko sikhate hain ki tumhare object ke saath print, len, + kya karein.

python▶ Run
class Bill:
    def __init__(self, items):
        self.items = items
    def __str__(self):
        return f"Bill: {len(self.items)} items"
    def __len__(self):
        return len(self.items)

b = Bill(["doodh", "bread"])
print(b)  # Bill: 2 items
print(len(b))  # 2
__STR__

print(obj) kya dikhaye — readable naam.

__LEN__

len(obj) ka jawab.

__ADD__ / __EQ__

+ aur == apne hisaab se.

HOW: dunder likhna

Naam fix hain — __str__, __len__, __add__(self, other), __eq__. Python khud bulata hai jab tum print/len/+ use karte ho. Tumhe sirf method likhna hai.

python▶ Run
class Wallet:
    def __init__(self, cash):
        self.cash = cash
    def __add__(self, other):
        return Wallet(self.cash + other.cash)

w = Wallet(100) + Wallet(50)
print(w.cash)  # 150
Try it: cart jodo__add__ badal kar dekho
Run Python dabayein

Quick check

print(obj) readable banane wala magic method kaun sa hai?

str wala dunder — print isi ko bulata hai.

Common mistakes

Dunder samajh aaya?

Ab dabbe ke andar dabba — inner classes dekho.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course