Python ko‘rinish sohasi (scope)


ULASHISH

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:

  1. Mahalliy - joriy funksiya ichida
  2. Qoplash - ichki o‘rash funksiyalari (ichkidan tashqariga)
  3. Global - modulning yuqori darajasida
  4. 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!