Pythonda ko'rish sohalari bilan ishlashning nuanslari
Lokal va global o'zgaruvchilar bilan ishlashning muhim nuanslarini ko'rib chiqamiz.
Bizda num global o'zgaruvchisi bor deb faraz qilaylik.
Keling, func funktsiyasini yarataylik,
u global num ni konsolga chiqaradi:
num = 1
def func():
print(num)
func() # 1 ni chiqaradi
Endi print qatorining ostida lokal num ni e'lon qilaylik.
Kod bajarilgandan so'ng, konsolda xato chiqadi.
Buning sababi, Python
funktsiya ichida num ni faqat
hali e'lon qilinmagan lokal o'zgaruvchi sifatida qabul qiladi:
num = 1
def func():
print(num) # xatoni chiqaradi
num = 2
Keling, endi num o'zgaruvchisining qiymati
2 ga oshirilishi uchun funktsiya ichidagi kodni qayta yozamiz:
num = 1
def func():
num += 2 # xatoni chiqaradi
Xato num += 2 ifodasi
quyidagi yozuvni ifodalashi bilan bog'liq:
num = num + 2
Biroq, qo'shilayotgan lokal o'zgaruvchi hali e'lon qilinmagan. Va shuning uchun Python xatolik chiqaradi, chunki mavjud bo'lmagan qiymatga son qo'shib bo'lmaydi.
Quyidagi kodni bajarish natijasi qanday bo'ladi:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Quyidagi kodni bajarish natijasi qanday bo'ladi:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Quyidagi kodni bajarish natijasi qanday bo'ladi:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)