Python’da Fonksiyon Kapsamı (Scope)

Anlamı ve Kullanımı

Python programlama dilinde, “kapsam” (scope) kavramı, bir değişkenin veya fonksiyonun hangi bölge veya alan içinde geçerli olduğunu belirtir. Kapsam, değişkenlerin erişilebilirliğini ve kullanılabilirliğini kontrol eder.

Kapsam (Scope) Nedir?

Python’da, her değişken veya fonksiyonun bir kapsamı vardır. Kapsam, bir değişkenin veya fonksiyonun nereden erişilebileceğini ve kullanılabileceğini belirler. Python, genel olarak iki tür kapsamı destekler:

  1. Yerel Kapsam (Local Scope): Bir değişken veya fonksiyon, tanımlandığı yerde yerel kapsama sahiptir. Bu, değişkenin veya fonksiyonun sadece tanımlandığı yerde erişilebilir olduğu anlamına gelir.
  2. Global Kapsam (Global Scope): Bir değişken veya fonksiyon, programın herhangi bir yerinde erişilebilir olabilir. Bu, değişkenin veya fonksiyonun programın herhangi bir bölümünden kullanılabileceği anlamına gelir.

Fonksiyon Kapsamı (Function Scope)

Python’da fonksiyonlar, kendi yerel kapsamlarına sahiptir. Yani, bir fonksiyon içinde tanımlanan değişkenler, sadece o fonksiyon içinde erişilebilir ve kullanılabilir. Bu, değişkenlerin başka fonksiyonlardan veya programın diğer bölümlerinden izole edildiği anlamına gelir.

İşte bir örnek:

def fonksiyon():
    x = 10  # x, bu fonksiyonun yerel değişkenidir
    print(x)

fonksiyon()  # Fonksiyonu çağırma
print(x)  # Hata! x, bu kapsamda tanımlanmamıştır

Yukarıdaki örnekte, “x” adlı bir değişken “fonksiyon” içinde tanımlanmıştır. Bu nedenle, “x” yalnızca “fonksiyon” içinde erişilebilir ve dışarıda kullanılmaya çalışıldığında hata verir.

Global Kapsam (Global Scope)

Python’da, fonksiyonlar dışında, programın en üst düzeyinde tanımlanan değişkenler global kapsama sahiptir. Bu, bu değişkenlerin programın herhangi bir bölümünden erişilebilir ve kullanılabilir olduğu anlamına gelir.

İşte bir örnek:

x = 10  # x, global değişkendir

def fonksiyon():
    print(x)

fonksiyon()  # Fonksiyon, globalde tanımlanan x'i kullanır

Yukarıdaki örnekte, “x” adlı bir değişken global kapsamda tanımlanmıştır. Bu nedenle, “fonksiyon” içinde kullanılmış ve erişilebilir bir değere sahiptir.

“global” Anahtar Kelimesi

Eğer bir fonksiyon içinde global bir değişkeni değiştirmek isterseniz, “global” anahtar kelimesini kullanabilirsiniz. İşte bir örnek:

x = 10  # x, global değişkendir

def fonksiyon():
    global x  # x'i global olarak tanımla
    x = 20  # x'in değerini değiştir

fonksiyon()  # Fonksiyon, globaldeki x'i değiştirir
print(x)  # x'in değeri şimdi 20'dir

Yukarıdaki örnekte, “fonksiyon” içinde “global x” ifadesi kullanarak “x” değişkenini global kapsamda tanımladık ve değerini değiştirdik.

Özet

Python’da fonksiyon kapsamı (scope), bir değişkenin veya fonksiyonun nereden erişilebileceğini ve kullanılabileceğini belirler. Fonksiyonlar kendi yerel kapsamlarına sahiptir, bu nedenle bir fonksiyon içinde tanımlanan değişkenler yalnızca o fonksiyon içinde erişilebilir.