Lesson — Functions
NAAM KAHAN
DIKHTA HAI.
Local, global, nonlocal — naam ki seema samjho. UnboundLocalError hamesha ke liye khatm.
WHY: naam kahan dikhta hai
Function ke andar banaya naam bahar nahi dikhta — aur bahar wala andar dikhta hai. Ye scope hai. UPI balance bahar, receipt function ke andar: kaun kisko dekh sakta hai, ye samjho to UnboundLocalError kabhi nahi aayega.
python▶ Run
balance = 1000 # global
def pay(amount):
balance = balance - amount # ERROR! local samjha gaya
print(balance)LOCAL
Function ke andar — bahar invisible.
GLOBAL
Sabse bahar — global likh kar badlo.
NONLOCAL
Nested function me bahar wala — nonlocal se.
HOW: global aur nonlocal
Padhna free hai — function bahar ka naam padh sakta hai. Badalna ho to permission leni padti hai: global ke liye global, nested-bahar ke liye nonlocal.
python▶ Run
balance = 1000
def pay(amount):
global balance
balance = balance - amount
return balance
print(pay(250)) # 750
print(balance) # 750 (badal gaya)Try it: counter banaoglobal badal kar dekho
Run Python dabayein
Quick check
global keyword kyun likhte hain function me?
Function ke andar bahar wala naam badalne ki permission chahiye.
Common mistakes
- Bina
globalke bahar wala number badalna —UnboundLocalError. - Har cheez global banana — function ke arguments use karo, global kam.
globalaurnonlocalconfuse karna — nested me nonlocal.
Scope clear?
Ab code aur chhota karo — comprehension dekho.