Python - Doira
Doira
O'zgaruvchi faqat u yaratilgan hudud ichida mavjud bo'ladi. Bu doira deb ataladi.
Mahalliy Doira
Funksiya ichida yaratilgan o'zgaruvchi o'sha funksiyaning mahalliy doirasiga tegishli bo'ladi va faqat shu funksiya ichida ishlatilishi mumkin.
Misol
Funksiya ichida yaratilgan o'zgaruvchi faqat shu funksiya ichida mavjud:
def mening_funksiyam():
x = 300
print(x)
mening_funksiyam()Funksiya Ichidagi Funksiya
Yuqoridagi misolda tushuntirilganidek, x o'zgaruvchisi funksiyadan tashqarida mavjud emas, lekin funksiya ichidagi har qanday funksiya uchun mavjud:
Misol
Mahalliy o'zgaruvchiga funksiya ichidagi funksiyadan kirish mumkin:
def mening_funksiyam():
x = 300
def ichki_funksiya():
print(x)
ichki_funksiya()
mening_funksiyam()Global Doira
Python kodining asosiy qismida yaratilgan o'zgaruvchi global o'zgaruvchi bo'ladi va global doiraga tegishli bo'ladi.
Global o'zgaruvchilar har qanday doiradan, global va mahalliy doiradan ham mavjud.
Misol
Funksiyadan tashqarida yaratilgan o'zgaruvchi global bo'ladi va hamma uchun ishlatilishi mumkin:
x = 300
def mening_funksiyam():
print(x)
mening_funksiyam()
print(x)O'zgaruvchilarni Nomlash
Agar siz funksiya ichida va tashqarisida bir xil o'zgaruvchi nomidan foydalansangiz, Python ularni ikkita alohida o'zgaruvchi sifatida qaraydi: biri global doirada (funksiyadan tashqarida) mavjud, biri esa mahalliy doirada (funksiya ichida) mavjud:
Misol
Funksiya mahalliy x ni chop etadi, keyin kod global x ni chop etadi:
x = 300
def mening_funksiyam():
x = 200
print(x)
mening_funksiyam()
print(x)Global Kalit So'zi
Agar siz mahalliy doirada bo'lsangiz va global o'zgaruvchi yaratmoqchi bo'lsangiz, global kalit so'zidan foydalanishingiz mumkin.
global kalit so'zi o'zgaruvchini global qiladi.
Misol
Agar global kalit so'zidan foydalansangiz, o'zgaruvchi global doiraga tegishli bo'ladi:
def mening_funksiyam():
global x
x = 300
mening_funksiyam()
print(x)Shuningdek, funksiya ichida global o'zgaruvchi qiymatini o'zgartirmoqchi bo'lsangiz, global kalit so'zidan foydalaning.
Misol
Funksiya ichida global o'zgaruvchi qiymatini o'zgartirish uchun global kalit so'zidan foydalanib o'zgaruvchiga murojaat qiling:
x = 300
def mening_funksiyam():
global x
x = 200
mening_funksiyam()
print(x)Nonlocal Kalit So'zi
nonlocal kalit so'zi ichki funksiyalar ichidagi o'zgaruvchilar bilan ishlash uchun ishlatiladi.
nonlocal kalit so'zi o'zgaruvchini tashqi funksiyaga tegishli qiladi.
Misol
Agar nonlocal kalit so'zidan foydalansangiz, o'zgaruvchi tashqi funksiyaga tegishli bo'ladi:
def birinchi_funksiya():
x = "Jane"
def ikkinchi_funksiya():
nonlocal x
x = "salom"
ikkinchi_funksiya()
return x
print(birinchi_funksiya())