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())

O'zgaruvchilarning qo'llanish doirasi (Scope) mavzusida test

Savol 1 / 7

Funksiya ichida yaratilgan o'zgaruvchi qaysi qo'llanish doirasiga (Scope) tegishli bo'ladi?