๐ Introduction: Why This Matters
"Python mein har data type ka ek apna memory behavior hota hai!"
"Kya aapne mutable aur immutable objects ka fark samjha hai?"
"Aaj hum discuss karenge kaise Python handle karta hai memory ko jab objects mutable ho ya immutable ho."
"Agar aap in concepts ko samajh lete ho, toh aap apne code ko na sirf optimize kar sakte ho, lekin usse efficient bhi bana sakte ho."
๐น 1. Immutable Objects: Basic
Immutable ka Matlab?
- Immutable objects wo hote hain jinhe create hone ke baad change nahi kiya ja sakta.
- Agar aap kisi immutable object ko modify karte ho, to actually ek naya object ban jata hai.
โ Examples
Integer:
a = 10
b = 10
print(id(a), id(b)) # Same id โ Python ne same memory use ki
String:
x = "hello"
y = "hello"
print(id(x), id(y)) # Same id โ Python ne string ko intern kiya
๐ค Kyu Immutable banaye jaate hain?
- Memory Efficiency: Python same value ko baar-baar memory mein store nahi karta.
- Hashing ke liye jaruri: Immutable object dictionary mein key ban sakte hain, mutable nahi.
๐ง Bonus Insight: Immutable object thread-safe hote hain โ multiple thread mein bhi data change nahi hota, no risk of clash.
๐น 2. Mutable Objects: Basic
Mutable ka Matlab?
- Mutable objects wo hote hain jinhe aap direct modify kar sakte ho.
- Inka memory location same rehta hai, par andar ka data change ho jata hai.
โ Examples
List:
list1 = [1, 2, 3]
list2 = list1
list1.append(4)
print(list2) # [1, 2, 3, 4] โ Same memory, data update ho gaya
Dictionary:
dict1 = {"a": 1}
dict2 = dict1
dict1["b"] = 2
print(dict2) # {'a': 1, 'b': 2}
๐ Kyu Useful Hai Mutable?
- Performance mein fast hote hain โ har baar naye object banane ki zarurat nahi.
- Realtime data ko efficiently update kiya ja sakta hai.
๐น 3. Mutable vs Immutable: Fark Samjho
๐ง Memory ka Behaviour
- Immutable: Update karne par naya object banta hai.
- Mutable: Update karne par same object mein change hota hai.
๐ ID Comparison
x = [1, 2, 3] # Mutable
y = [1, 2, 3]
print(id(x), id(y)) # Different IDs
a = "hello" # Immutable
b = "hello"
print(id(a), id(b)) # Same ID
โก Performance ka Impact
- Immutable objects zyada memory le sakte hain (copy banta hai).
- Mutable zyada memory efficient hote hain for large operations.
๐น 4. Optimization Techniques
โ Immutable Types Efficiently Kaise Use Karein
- Jab data change nahi karna ho to tuple use karo instead of list.
- Strings ko repeat karne par Python unhe intern karta hai:
a = "hello"
b = "hello"
print(id(a) == id(b)) # True โ memory reuse
โ Mutable Types Ko Efficiently Kaise Use Karein
- Avoid karo unnecessary object creation.
- In-place updates karo:
lst = [1, 2, 3]
lst.append(4) # Same list update ho gayi
- Generators use karo jab large data process karna ho:
def gen_numbers():
for i in range(1000000):
yield i
๐ Memory Profile Check Karne ke Tools
import sys
a = [1, 2, 3]
print(sys.getsizeof(a)) # Memory size in bytes
๐น 5. Real-World Use Cases
โ Immutable Use Kahan Karein
- Dictionary Keys: Immutable objects jaise tuple key ban sakte hain.
my_dict = {}
my_dict[("apple", "banana")] = "fruit" # Tuple is hashable
- Multithreading: Jab multiple thread ka use ho, immutable objects safe hote hain.
โ Mutable Use Kahan Karein
- Large Data: List/dict jab baar-baar update karna ho.
- Stateful Apps: Games ya apps jahan object ka state frequently change hota hai.
๐น 6. Advanced Internals
๐ก Python Ka Memory Handling
- Reference Counting: Immutable objects multiple jagon se point ho sakte hain โ space bachaate hain.
- Copy-on-Write: Mutable objects ko jab modify kiya jata hai to nayi copy ban sakti hai.
import copy
lst1 = [1, 2, 3]
lst2 = copy.copy(lst1)
lst1.append(4)
print(lst2) # [1, 2, 3] โ old copy safe hai
๐งช Immutable Internals
- Tuples ko memory mein ek block mein store kiya jata hai โ fast access ke liye.
- Strings ko Python intern karta hai โ same string baar-baar likhne pe ek hi memory use karta hai.
โ Conclusion: Key Takeaway
๐๏ธ
"Aapne dekha kaise Python immutable aur mutable objects ko manage karta hai."
"Agar aapko apne code ko efficient banana hai, toh yeh concepts aapko internally samajhna zaroori hai."
"Agle video me hum discuss karenge Function Execution & Call Stack โ kaise functions ka execution step-by-step hota hai."