Resim

Değişken Kapsamı

Küresel (Global) ve Yerel (Local) Değişkenler

Bir değişkenin programın hangi kısımlarında erişilebilir olduğu, onun kapsamını (scope) belirler. Python'da iki temel kapsam türü vardır:

a. Yerel Kapsam (Local Scope)

Bir fonksiyonun içinde tanımlanan veya oluşturulan değişkenlerdir.

  • Özellik: Bu değişkenlere yalnızca tanımlandıkları fonksiyonun içinden erişilebilir. Fonksiyon çalışmayı bitirdiğinde, yerel değişkenler bellekten silinir.

  • Örnek:

def hesapla():
    # 'x' yerel değişkendir
    x = 10 
    print(f"Fonksiyon İçi (Yerel x): {x}")
hesapla()
# print(x) # HATA! Fonksiyon dışından 'x'e erişilemez (NameError)

Kendiniz Deneyebilirsiniz:


b. Küresel Kapsam (Global Scope)

Programın ana gövdesinde (hiçbir fonksiyonun veya sınıfın içinde olmadan) tanımlanan değişkenlerdir.

  • Özellik: Bu değişkenlere programın her yerinden (fonksiyonların içinden dahil) erişilebilir. Program sonlanana kadar bellekte kalırlar.

  • Örnek:

y = 50 # 'y' küresel değişkendir
def goster():
    print(f"Fonksiyon İçi (Küresel y): {y}")
goster()
print(f"Fonksiyon Dışı (Küresel y): {y}")
# Çıktı: 50, 50

Kendiniz Deneyebilirsiniz:


c. Yerel Kapsamda Küresel Değişkeni Değiştirme Kuralı

Bir fonksiyonun içinden küresel bir değişkenin değerini okumakta sorun yoktur, ancak doğrudan değiştiremezsiniz. Python, fonksiyonda atama yapılan bir değişkeni otomatik olarak yerel olarak kabul eder.

Problem Örneği (Hata Verir):

sayac = 0 # Küresel
def artir():

    # Python, burada 'sayac = sayac + 1' dediğimizde
    # 'sayac'ı yerel değişken olarak görmeye çalışır.
    # Ancak önce okumaya çalıştığı için hata verir.
    sayac = sayac + 1 
    print(sayac)

# artir() # HATA: UnboundLocalError

Kendiniz Deneyebilirsiniz:


d. global Anahtar Kelimesi

Bir fonksiyonun içerisinden gerçekten küresel bir değişkeni değiştirmek istiyorsanız, bunu Python'a global anahtar kelimesini kullanarak belirtmelisiniz.

Çözüm Örneği:

sayac = 0 # Küresel
def global_artir():
    global sayac # Python'a, 'sayac'ın küresel kapsamdaki değişken 
olduğunu bildiririz
    sayac = sayac + 1
    print(f"Fonksiyon içi: {sayac}")

print(f"Başlangıç: {sayac}") # Çıktı: 0
global_artir()               # Çıktı: Fonksiyon içi: 1
global_artir()               # Çıktı: Fonksiyon içi: 2
print(f"Sonuç: {sayac}")     # Çıktı: 2 (Küresel değer değişti)

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?