Ders Notu
global Deyimi
Python’da değişkenlerin, fonksiyonların ve sınıfların bir kapsamı vardır. Bu kapsama "isim alanı" (namespace) adı verilir. Python’da her nesnenin, geçerli ve etkin olduğu bir isim alanı bulunur. Örneğin ana isim alanında (aynı zamanda fonksiyon dışında) tanımlanmış bir x değişkeni "global" bir değişkendir. Fonksiyon içindeki alan ise yerel bir alandır ve fonksiyon dışında tanımlanan bu x değişkeninden varsayılan olarak habersizdir. Dolayısıyla fonksiyon içerisinde, fonksiyonun dışarısında tanımlanmış bir değişkeni işleme tabi tutulmak istenirse hata alınacaktır. Bu hatanın önüne geçmek için fonksiyon dışında tanımlanan değişkenin fonksiyon içerisinde global deyimi ile birlikte bir kez kullanılması gerekmektedir.
Örnekler
Örnek 1:
x = 2
def ekle(sayi):
x += sayi
return x
print(ekle(3))
Ekran Çıktısı:
UnboundLocalError: local variable 'x' referenced before assignment
Örnek 2:
x = 2
def ekle(sayi):
global x
x += sayi
return x
print(ekle(3))
Ekran Çıktısı:
5
Örneklerde görüleceği üzere ekle adındaki fonksiyon; sayi adındaki parametre ile gelen değeri fonksiyonun dışında tanımlanmış x değişkenin üzerine eklemeye ve x'in son değerini döndürmeye ayarlanmıştır. Örnek 1'de fonksiyonun x değişkeninden haberi olmadığı için buna yönelik bir hata mesajı göstermekte ve sonucu bulamamaktadır. Örnek 2'de ise "global x" ifadesi ile fonksiyon dışındaki x değişkeninden ekle fonksiyonu haberdar edilmiş ve ekleme işlemi yapılarak (2+3) sonuç hatasız bir şekilde döndürülmüştür.