Skip to content

Latest commit

 

History

History
236 lines (153 loc) · 4.76 KB

README.md

File metadata and controls

236 lines (153 loc) · 4.76 KB

Fəsil 10: Sahə və Ad Məkanı

Mündəricat

Python-da Sahəni Anlamaq

Sahə, dəyişənin kodun hansı bölgəsində əlçatan olduğunu göstərir. Python-da müxtəlif növ sahələr var: yerel, enclosing, qlobal və daxili. Sahəni anlamaq təmiz və səhvsiz kod yazmaq üçün vacibdir.

Nümunə: Yerel Sahə

Funksiya daxilində təyin olunan dəyişənlər yerel sahədədir və yalnız həmin funksiyada əlçatandır.

def my_function():
    x = 10  # Yerel sahə
    print(x)

my_function()
print(x)  # Bu, səhv verəcək, çünki x funksiyadan kənarda təyin olunmayıb

Çıxış:

10
NameError: name 'x' is not defined

İzah: x dəyişəni my_function funksiyası daxilində təyin olunub və funksiyadan kənarda əlçatan deyil.

LEGB Qaydası (Yerel, Enclosing, Qlobal, Daxili)

LEGB qaydası, Python-un dəyişənləri axtarma sırasını müəyyən edir. Bu, Yerel, Enclosing, Qlobal və Daxili deməkdir.

Yerel Sahə

Funksiya daxilində təyin olunan dəyişənlər.

def my_function():
    x = 10  # Yerel sahə
    print(x)

my_function()

Çıxış:

10

Enclosing Sahə

Enclosing funksiyaların yerel sahəsində olan dəyişənlər.

def outer_function():
    x = 20  # Enclosing sahə

    def inner_function():
        print(x)

    inner_function()

outer_function()

Çıxış:

20

Qlobal Sahə

Skriptin və ya modulun ən üst səviyyəsində təyin olunan dəyişənlər.

x = 30  # Qlobal sahə

def my_function():
    print(x)

my_function()
print(x)

Çıxış:

30
30

Daxili Sahə

Python-da əvvəlcədən təyin olunmuş adlar.

print(len("Hello"))  # Daxili funksiya

Çıxış:

5

Qlobal və Nonlocal Açar Sözləri

globalnonlocal açar sözləri müxtəlif sahələrdə dəyişənlərin davranışını dəyişdirmək üçün istifadə olunur.

Qlobal Açar Sözü

global açar sözü, funksiyanın daxilində qlobal dəyişəni dəyişdirməyə imkan verir.

x = 40

def my_function():
    global x
    x = 50

my_function()
print(x)

Çıxış:

50

İzah: global açar sözü funksiyaya qlobal dəyişən x-i dəyişdirməyə imkan verir.

Nonlocal Açar Sözü

nonlocal açar sözü, enclosing sahədəki dəyişəni dəyişdirməyə imkan verir.

def outer_function():
    x = 60

    def inner_function():
        nonlocal x
        x = 70

    inner_function()
    print(x)

outer_function()

Çıxış:

70

İzah: nonlocal açar sözü daxili funksiyaya enclosing sahədəki x dəyişənini dəyişdirməyə imkan verir.

Ad Məkanı və Dəyişənlərin Həlli

Ad məkanı, identifikatorların (dəyişən adlarının) və onların müvafiq obyektlərinin saxlandığı konteynerdir. Python, dəyişənləri və onların dəyərlərini izləmək üçün ad məkanlarından istifadə edir.

Nümunə: Ad Məkanı

x = 80  # Qlobal ad məkanı

def my_function():
    x = 90  # Yerel ad məkanı
    print(x)

my_function()
print(x)

Çıxış:

90
80

İzah: Qlobal ad məkanında olan x dəyişəni, funksiyanın yerel ad məkanında olan x dəyişənindən fərqlidir.

Dəyişənlərin Həlli

Python, dəyişənləri LEGB qaydasına uyğun olaraq həll edir.

x = 100  # Qlobal sahə

def outer_function():
    x = 110  # Enclosing sahə

    def inner_function():
        x = 120  # Yerel sahə
        print(x)

    inner_function()

outer_function()

Çıxış:

120

İzah: inner_function funksiyasının yerel sahəsində olan x dəyişəni istifadə olunur, çünki LEGB qaydasına görə ən yaxın sahədir.

Xülasə

Bu fəsildə, Python-da sahə və ad məkanını, LEGB qaydasını, globalnonlocal açar sözlərini və Python-un dəyişənləri necə həll etdiyini öyrəndik.

Tapşırıqlar

  1. Yerel, enclosing və qlobal sahələrin istifadəsini göstərən bir proqram yazın.
  2. global açar sözünü istifadə edərək, funksiyanın daxilində qlobal dəyişəni dəyişdirən bir proqram yazın.
  3. nonlocal açar sözünü istifadə edərək, enclosing sahədəki dəyişəni dəyişdirən bir proqram yazın.
  4. LEGB qaydasını istifadə edərək dəyişənlərin həllini göstərən bir proqram yazın.

Növbəti Fəsil: Nəticə və Əlavə Öyrənmə