Skip to content

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:

python
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:

python
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:

python
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:

python
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:

python
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:

python
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:

python
def birinchi_funksiya():
    x = "Jane"
    def ikkinchi_funksiya():
        nonlocal x
        x = "salom"
    ikkinchi_funksiya()
    return x

print(birinchi_funksiya())