Global Değişken Nedir?
İngilizce: Global Variable
Yayın: · Son güncelleme:
Global Değişken Nedir? Kısaca
Global değişken, bir programda herhangi bir fonksiyonun içinde değil en dış seviyede tanımlanan ve programın her yerinden okunabilen değişkendir. Kolaylık sağlar ama kontrolsüz değiştirildiğinde hata bulmayı zorlaştırır.

Global değişken nedir?
Global değişken, kapsamı tüm programa yayılan değişkendir. Her yerden görünür. Fonksiyonların ve sınıfların dışında tanımlanır, bu yüzden kodun farklı bölümleri aynı değere erişebilir. Karşıtı ise yalnız tanımlandığı fonksiyon içinde geçerli olan yerel değişken kavramıdır.
Hangi değişkenin nereden görülebileceğini belirleyen kurallara kapsam denir. Global değişken, bu kuralların en geniş seviyesinde yer alır.
Python'da örnek
Aşağıdaki varsayımsal kodda KOMISYON_ORANI dosyanın en üstünde tanımlanmıştır:
KOMISYON_ORANI = 0.05
def komisyonlu_fiyat(fiyat):
return fiyat * (1 + KOMISYON_ORANI)
Fonksiyon, dışarıdaki değeri okuyabilir ve 100 TL için 105 TL döndürür. Değeri fonksiyon içinden değiştirmek isterseniz Python'da global anahtar sözcüğünü kullanmanız gerekir. JavaScript'te ise var ile en dışta tanımlanan değişkenler tarayıcıda window nesnesine eklenir.
Neden dikkatli kullanılmalı?
Global değişkenlerin asıl riski, programın herhangi bir yerinden değiştirilebilmeleridir. On farklı fonksiyon aynı sayacı güncelliyorsa yanlış değerin hangisinden geldiğini bulmak saatler sürebilir. Çok iş parçacıklı programlarda aynı anda yapılan yazmalar race condition hatalarına da yol açar.
Pratik kural şudur: hiç değişmeyecek ayarları (sabitleri) global tanımlamak genellikle sorun değildir. Değişen veriyi ise fonksiyonlara parametre olarak geçirmek ya da bir sınıf içinde tutmak, kodu hem test etmeyi hem okumayı kolaylaştırır.
Sıkça Sorulan Sorular
Global değişken kullanmak kötü bir alışkanlık mı?
Her durumda değil. Değişmeyen ayarlar ve sabitler için makul bir tercihtir. Sorun, sık değişen verinin global tutulmasıyla başlar, çünkü değeri kimin değiştirdiğini izlemek zorlaşır.
Python'da fonksiyon içinden global değişken nasıl değiştirilir?
Fonksiyonun başında global degisken_adi yazmanız gerekir. Bu satır olmadan atama yaparsanız Python aynı adda yeni bir yerel değişken oluşturur ve dışarıdaki değer değişmez.