Python Global ve Yerel Kapsam

Python Global ve Yerel Kapsam

Python'da değişkenlerin kapsamı (scope), bir değişkenin hangi kod blokları içinde erişilebilir olduğunu belirler. Değişkenler genellikle iki tür kapsamda bulunur: global kapsam ve yerel kapsam.

1. Global Kapsam (Global Scope)

Global değişkenler, tüm Python dosyası veya programı boyunca, yani her yerden erişilebilen değişkenlerdir. Global kapsamda tanımlanan bir değişken, fonksiyonlar, döngüler ve diğer kod blokları dahil olmak üzere her yerden kullanılabilir.

Özellikler:

  • Global değişkenler, genellikle fonksiyonların dışında tanımlanır.
  • Fonksiyon içinde global bir değişken kullanılabilir, ancak fonksiyon içinde bu değişkeni değiştirmek için global anahtar kelimesi kullanmak gerekir.

Örnek:

x = 10 # Global değişken def fonksiyon(): print(x) # Global değişkene fonksiyon içinden erişim fonksiyon() # Çıktı: 10 print(x) # Çıktı: 10

Burada x global bir değişkendir ve fonksiyonun içinden de erişilebilmektedir.

2. Yerel Kapsam (Local Scope)

Yerel değişkenler, sadece tanımlandıkları fonksiyon veya blok içinde geçerli olan değişkenlerdir. Fonksiyon veya blok dışına çıktığınızda, bu değişkenlere erişemezsiniz. Her fonksiyon çağrıldığında yerel kapsam yeniden oluşturulur.

Özellikler:

  • Yerel değişkenler, genellikle fonksiyonların içinde tanımlanır.
  • Yerel değişkenler, sadece fonksiyon içinde geçerli olup, fonksiyon dışından erişilemez.

Örnek:

def fonksiyon(): y = 20 # Yerel değişken print(y) # Fonksiyon içinde kullanılabilir fonksiyon() # Çıktı: 20 print(y) # Hata: NameError, çünkü 'y' yerel kapsamda

Bu örnekte y, sadece fonksiyon() içinde geçerlidir ve dışarıdan erişilemez.

3. Global Anahtar Kelimesi

Bir fonksiyon içinde global bir değişkeni okumak için doğrudan kullanabilirsiniz. Ancak, eğer fonksiyon içinde global bir değişkenin değerini değiştirmek isterseniz, global anahtar kelimesini kullanmanız gerekir. Aksi halde Python, o fonksiyon içinde yerel bir değişken yaratır.

Örnek:

x = 50 # Global değişken def degistir(): global x # Global değişkeni değiştirmek için x = 100 # Global değişkenin değeri değiştirilir degistir() print(x) # Çıktı: 100

Eğer global anahtar kelimesini kullanmasaydık, x sadece fonksiyon içinde yerel olarak değiştirilmiş olurdu.

4. Global ve Yerel Değişkenlerin Çakışması

Eğer bir fonksiyon içinde global ve yerel değişkenlerin aynı isimde olması durumunda, Python yerel değişkene öncelik verir.

Örnek:

x = 30 # Global değişken def fonksiyon(): x = 10 # Yerel değişken print(x) # Yerel değişken kullanılır fonksiyon() # Çıktı: 10 print(x) # Çıktı: 30 (global 'x' değişmemiştir)

Burada fonksiyon() içinde x değişkeni yerel olarak tanımlandığı için global x'i etkilemez.

5. Nonlocal Anahtar Kelimesi

Python'da iç içe fonksiyonlar varsa, yerel değişkeni bir iç fonksiyonda değiştirmek için nonlocal anahtar kelimesi kullanılır. Bu, iç fonksiyonun, dış fonksiyondaki yerel değişkeni değiştirmesine olanak tanır.

Örnek:

def dis_fonksiyon(): y = 10 # Dış fonksiyonun yerel değişkeni def ic_fonksiyon(): nonlocal y # Dış fonksiyonun yerel değişkenini değiştir y = 20 print("İç fonksiyon:", y) ic_fonksiyon() print("Dış fonksiyon:", y) dis_fonksiyon()

Çıktı:

İç fonksiyon: 20 Dış fonksiyon: 20

Burada nonlocal, iç fonksiyonun dış fonksiyondaki yerel değişkeni değiştirmesine olanak sağlar.

Özet:

  • Global kapsam, fonksiyon dışındaki tüm kod bloklarında tanımlanan ve her yerden erişilebilen değişkenler için kullanılır.
  • Yerel kapsam, sadece belirli bir fonksiyon içinde tanımlanan ve o fonksiyonun dışında erişilemeyen değişkenler içindir.
  • global anahtar kelimesi, bir fonksiyon içinde global bir değişkeni değiştirmek için kullanılır.
  • nonlocal anahtar kelimesi, iç içe fonksiyonlarda dış fonksiyonun yerel değişkenini değiştirmek için kullanılır.


Yorum Ekle

Üzerine gel