BÖLÜM 4 – Python'da Fonksiyonlar 🧩 5. Değişkenlerin Kapsamı (Scope)
BÖLÜM 4 – Python'da Fonksiyonlar
🧩 5. Değişkenlerin Kapsamı (Scope)
Fonksiyonlar içinde tanımlanan değişkenlerin nereye kadar geçerli olduğunu belirleyen kurala scope (kapsam) denir.
🔹 1. Yerel Değişken (Local Variable)
Fonksiyon içinde tanımlanan değişkene local değişken denir. Sadece o fonksiyon içinde geçerlidir, dışarıdan erişilemez.
✅ Örnek 1: Local değişken örneği
📌 mesaj
sadece selamla()
fonksiyonu içinde çalışır.
🔹 2. Global Değişken (Global Variable)
Fonksiyon dışında tanımlanan değişken, tüm programda geçerlidir. Fonksiyonlar da bu değişkene erişebilir (ama dikkatli olmak gerekir).
✅ Örnek 2: Global değişken örneği
🟢 Çıktı:
🔹 3. Local değişkenin globali gölgelemesi
Fonksiyon içinde aynı isimde başka bir değişken tanımlarsan, Python önce local olana bakar.
✅ Örnek 3:
🟢 Çıktı:
📌 Fonksiyon içindeki isim
, dışarıdaki isim
i etkilemez.
🔹 4. global anahtar kelimesi
Eğer fonksiyon içinden bir global değişkeni değiştirmek istersen, global
anahtar kelimesini kullanman gerekir.
✅ Örnek 4: global kullanımı
🟢 Çıktı:
🔹 5. Uygulamalı Örnek: Sayaç
🟢 Çıktı:
🔹 6. Hatalı Kullanım – global olmadan değiştirmeye çalışmak
🔴 HATA:
📌 Çünkü puan -= 10
ile değiştirmeye çalıştık ama önce global olduğunu belirtmedik. Python bunu yeni bir local değişken sanır.
📝 Özet Öğrenciye:
Terim | Açıklama |
---|---|
local | Fonksiyon içinde tanımlanır, sadece orada geçerlidir |
global | Fonksiyon dışında tanımlanır, tüm kodda geçerlidir |
global x | Fonksiyon içinden global bir değişkeni değiştirmek için kullanılır |
Aynı isim | Fonksiyon içindeki değişken dışarıdakini etkilemez (gölgeleme olur) |
🎯 Scope Nedir?
Scope, bir değişkenin nerede tanımlandığına göre hangi kod parçalarında geçerli olduğunu belirler.
Python'da 2 temel kapsam vardır:
-
Yerel (local) – fonksiyon içinde tanımlanan değişken
-
Genel (global) – fonksiyon dışında tanımlanan değişken
Daha gelişmiş konularda fonksiyon içinde fonksiyon kullanıldığında da iç içe scope’lar devreye girer (bunlara closure denir, ileri seviye konudur).
✅ Gerçek Hayattan Benzetme:
Bir sınıf düşün:
-
isim
listesi sınıfın içinde geçerli, dışarıda kimse göremez. (local) -
Okulun zil sesi her yerde duyulur. (global)
🔹 1. Kullanım Alanı: Fonksiyonun dışındaki veriyle çalışmak
Eğer verin dışarıda tanımlıysa ama içinde kullanman gerekiyorsa:
🟢 Bu çalışır çünkü sadece okuma yapıyoruz.
🔹 2. Kullanım Alanı: Global değişkeni değiştirmek
📌 Global değişkene müdahale ettiğin için global
anahtar sözcüğü gerekir.
🔹 3. Kullanım Alanı: Aynı değişken adı – Gölgeleme (Shadowing)
🟢 Çıktı:
🎓 Fonksiyon içindeki
x
, dıştakini gizler ama değiştirmez.
🔹 4. Kullanım Alanı: Sayac, toplam, log gibi dıştan kontrol edilen değerler
🧪 Örnek: sayac örneği
🟢 sayac → 5 olur.
🔹 5. Kullanım Alanı: İç içe fonksiyonlarda kapsam
🟢 Bu Python’da closure mantığının temelidir.
🔹 6. Hatalı Kullanım: global olmadan değiştirme girişimi
🔴 Hata:
Çözüm:
✅ İpuçları ve Best Practices:
Durum | Öneri |
---|---|
Değişken sadece fonksiyonda gerekliyse | local tanımla |
Değişken programın her yerinde gerekliyse | global tanımla ama dikkatli kullan |
Global değişkeni değiştireceksen | global anahtar kelimesini unutma |
Uzun projelerde | Mümkünse global değişkenden kaçın |
Global state gerekiyorsa | class veya yapılandırılmış sistem kullan |
🧠 Özet:
-
Local değişken sadece fonksiyon içinde yaşar.
-
Global değişken tüm dosyada kullanılabilir.
-
global
kullanmadan dışarıdaki değişken değiştirilemez. -
Aynı isimde iki değişken varsa içteki dıştakini gizler, silmez.
-
Kodun kontrolünü kaybetmemek için global değişken kullanımını sınırlı tut.
Comments
Post a Comment