Python ko‘rinish sohasi (scope)
Qo‘llash doirasi
O‘zgaruvchiga faqat u yaratilgan hudud ichidan foydalanish mumkin. Bu doira deb ataladi.
Mahalliy qamrov
Funksiya ichida yaratilgan o‘zgaruvchi ushbu funksiyaning mahalliy doirasiga kiradi va faqat shu funksiya ichida ishlatilishi mumkin.
Misol
Funksiya ichida yaratilgan o‘zgaruvchi ushbu funksiya ichida mavjud:
def myfunc():
x = 300
print(x)
myfunc()
O‘zingiz sinab ko‘ring »
Funksiya ichki funksiyasi
Yuqoridagi misolda tushuntirilganidek, x o‘zgaruvchisi funksiyadan tashqarida mavjud emas, lekin u funksiya ichidagi har qanday funksiya uchun mavjud:
Misol
Mahalliy o‘zgaruvchiga funksiya ichidagi funksiyadan kirish mumkin:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
O‘zingiz sinab ko‘ring »
Global qamrov
Python kodining asosiy qismida yaratilgan o‘zgaruvchi global o‘zgaruvchi bo‘lib, global qamrovga tegishli.
Global o‘zgaruvchilar har qanday miqyosda mavjud, global va mahalliy.
Misol
Funksiyadan tashqarida yaratilgan o‘zgaruvchi global bo‘lib, har kim foydalanishi mumkin:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
O‘zingiz sinab ko‘ring »
O‘zgaruvchilarni nomlash
Agar siz funksiya ichida va tashqarisida bir xil o‘zgaruvchi nomi bilan ishlasangiz, Python ularni ikkita alohida o‘zgaruvchi sifatida ko‘rib chiqadi, biri global miqyosda (funksiyadan tashqarida) va ikkinchisi mahalliy miqyosda (funksiya ichida) mavjud:
Misol
Funksiya mahalliy x ni chop etadi va keyin kod global x ni chop etadi:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
O‘zingiz sinab ko‘ring »
Global kalit so‘z
Agar sizglobalo‘zgaruvchisini yaratishingiz kerak bo‘lsa, lekin mahalliy doirada qolib ketsangiz,global kalit so‘zidan foydalanishingiz mumkin.
globalkalit so‘ziglobalo‘zgaruvchisini yaratadi.
Misol
Agar sizglobalkalit so‘zidan foydalansangiz, o‘zgaruvchiglobaldoirasiga kiradi:
def myfunc():
global x
x = 300
myfunc()
print(x)
O‘zingiz sinab ko‘ring »
Bundan tashqari, funksiya ichidagiglobalo‘zgaruvchisiga o‘zgartirish kiritmoqchi bo‘lsangiz,global kalit so‘zidan foydalaning.
Misol
Funksiya ichidagiglobalo‘zgaruvchining qiymatini o‘zgartirish uchunglobalkalit so‘zidan foydalanib o‘zgaruvchiga murojaat qiling:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)
O‘zingiz sinab ko‘ring »
Mahalliy bo‘lmagan kalit so‘z
nonlocal kalit so‘zi ichki o‘rnatilgan funksiyalar ichidagi o‘zgaruvchilar bilan ishlash uchun ishlatiladi.
nonlocal kalit so‘zi o‘zgaruvchini tashqi funksiyaga tegishli qiladi.
Misol
Agar siznonlocalkalit so‘zidan foydalansangiz, o‘zgaruvchi tashqi funksiyaga tegishli bo‘ladi:
def myfunc1():
x = "Jane"
def myfunc2():
nonlocal x
x = "hello"
myfunc2()
return x
print(myfunc1())
O‘zingiz sinab ko‘ring »
LEGB qoidasi
Python o‘zgaruvchilar nomlarini qidirishda LEGB qoidasiga amal qiladi va ularni quyidagi tartibda qidiradi:
- Mahalliy - joriy funksiya ichida
- Qoplash - ichki o‘rash funksiyalari (ichkidan tashqariga)
- Global - modulning yuqori darajasida
- O‘rnatilgan - Python-ning o‘rnatilgan nomlar maydonida
Misol
LEGB qoidasini tushunish:
x = "global"
def outer():
x = "enclosing"
def inner():
x = "local"
print("Inner:", x)
inner()
print("Outer:", x)
outer()
print("Global:", x)
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
