Press "Enter" to skip to content

Global Kapsam ve Lokal Kapsam

Yaşar SAFALI 0

Kapsamlar

Global Kapsam ve Lokal Kapsam

Python’da yer alan değişkenlerin,fonksiyonların ve sınıfların(class) bir kapsam alanı(scope) vardır.Nesnelerin geçerli ve etkin olduğu bu alanlara  isim alanları adı verilir.Global Kapsam ve Lokal Kapsam

y=5
def Yaz():
    y=8
    return y

print("fonksiyona ait y",Yaz())
print("fonksiyon dışındaki y",y)

Output:

fonksiyona ait y 8
fonksiyon dışındaki y 5

Görüldüğü gibi fonksiyonun içindeki y ve dışındaki y değerleri farklıdır.Çünkü ikisi farklı isim alanlarında oluşturulmuştur. Daha iyi anlayabilmek için iki y değişkenininde idlerini(kimlik numaralarını inceleyelim)

y=5
def Yaz():
    y=8
 
    return y

print("fonksiyona ait y",id(Yaz()))
print("fonksiyon dışındaki y",id(y))

fonksiyona ait y 1680829680
fonksiyon dışındaki y 1680829584

Python’da ana isim alanına global fonksiyonların içerisinde yer alan isim alanına ise lokal adı verilir.

Python’da  bir değişkene erişilmek istendiğinde o değişken önce mevcut isim alanında aranır.Bulunamazsa üst isim alanlarında aranır.Daha net anlayabilmek için şu örneği inceleyelim.

y=5
def Yaz():
   return y

print("fonksiyona ait y",Yaz())
print("fonksiyon dışındaki y",y)

fonksiyona ait y 5
fonksiyon dışındaki y 5

y değişkeni fonksiyon içerisinde olmadığı için bir üst isim alanında yer alan değeri aldı.

Eğer değişken hem lokal hemde global alanda tanımlanmamışsa hata ile karşılaşılır.

def Yaz():
   print(x)

Bu kod çalışmaz çünkü x değişkeni tanımlanmamıştır.

 

Lokal bir alanda tanımlanmış bir değişkeni global alana taşımak için global anahtar kelimesi kullanılır.Bu değişken üzerinde yapılacak değişiklik artık global alandaki değişkeni de etkileyecektir

y=5
def Yaz():
    y=8
    return y

print("fonksiyona ait y",Yaz())
print("fonksiyon dışındaki

Output:

fonksiyona ait y 8
fonksiyon dışındaki y 5

Kod incelendiğinde lokalde 8 atanan y değişkeninin  globaldeki y değişkeninden farklı olduğu görülmektedir.

y=5
def Yaz():
    global y
    y=8
    return y

print("fonksiyona ait y",Yaz())
print("fonksiyon dışındaki y",y)

Output:

fonksiyona ait y 8
fonksiyon dışındaki y 8

Kod incelendiğinde lokal alanda global olarak tanımlanmış y değişkeninin artık global alandaki y değişkeni olduğu görülmektedir.

Bir sonraki yazımızda görüşmek dileğiyle

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

mardin escort yalova escort urfa escort tokat escort trabzon escort siirt escort sakarya escort ordu escort kirklareli escort kirsehir escort konya escort kusadasi escort kutahya erzincan escort erzincan escort manisa escort maras escort malatya escort mugla escort mus erzincan escort nevsehir escort nigde escort hakkari escort elazıg escort erzincan escort karabuk escort kars escort kayseri escort erzincan escort kastamonu escort corum escort corum escort canakkale escort bodrum escort bolu escort bingol escort bitlis escort balikesir escort afyon escort aydin escort aksaray escort aksaray escort alanya escort ardahan escort izmit escort izmit escort