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