Temiz, verimli ve hatasız Python kodu yazmak için isim alanlarını ve kapsamı öğrenmek şarttır. Bu öğretici, bu temel kavramları nasıl çalıştıklarını açıklayarak ve programlarınızda etkili kullanımını göstererek size yol gösterecektir.
İçindekiler Tablosu
- Python’da İsimler
- Python’da İsim Alanları
- Python’da Değişken Kapsamı
- Kapsam ve İsim Alanlarının Pratik Uygulamaları
1. Python’da İsimler
Python’da bir isim, basitçe bir nesneye yapılan bir başvuru anlamına gelir. Bu nesne bir değişken, fonksiyon, sınıf, modül veya başka herhangi bir Python varlığı olabilir. İsimler etiket görevi görerek nesnelere kolayca erişilebilir ve yönetilebilir hale getirir. Python, belirli bir tanımlayıcıyı nesnenin verilerini tutan bir bellek konumuna bağlamak için isimler kullanır. Örneğin:
my_variable = 10 # 'my_variable' isimdir, 10 tamsayı nesnesidir.
Burada, my_variable
değeri 10 olan tamsayı nesnesini ifade eden isimdir. İsimler büyük/küçük harfe duyarlıdır; my_variable
ve My_Variable
farklı isimlerdir.
2. Python’da İsim Alanları
Bir isim alanı, çakışmaları önlemek için isimleri düzenleyen bir kapsayıcıdır. Bir sözlük gibi işlev görür: anahtarlar isimlerdir ve değerler bu isimlerin temsil ettiği nesnelerdir. Python çeşitli isim alanı türleri kullanır:
- Yerleşik İsim Alanı: Tüm Python programlarında bulunan önceden tanımlanmış isimleri (örneğin,
print()
,len()
) içerir. Yorumlayıcı başlatıldığında oluşturulur. - Global İsim Alanı: Modül düzeyinde (bir
.py
dosyası) tanımlanan isimleri tutar. Bir modül yüklendiğinde oluşturulur. - Yerel İsim Alanı: Bir fonksiyon içinde tanımlanan isimleri içerir. Bir fonksiyon çağrıldığında oluşturulur ve fonksiyon döndüğünde yok edilir.
- Kapsayıcı Fonksiyon Yerelleri: İç içe geçmiş fonksiyonlar, kapsayıcı fonksiyonlarının isim alanlarına erişir.
Python’ın isim alanı araması LEGB kuralını izler: Lokal → En kapsayıcı fonksiyon yerelleri → Global → Built-in. Bir isim karşılaşıldığında, Python bu isim alanlarını sırayla arar. İsim bulunmazsa bir NameError
oluşur.
3. Python’da Değişken Kapsamı
Kapsam, bir ismin görünür ve erişilebilir olduğu bölgeyi tanımlar. Bir değişkenin kapsamı, kod içindeki konumuyla belirlenir ve doğrudan isim alanı ile ilgilidir.
global_var = 100
def my_function():
local_var = 20
print(global_var) # Global değişkene erişim
print(local_var) # Yerel değişkene erişim
my_function()
print(global_var) # Global değişkene erişim
#print(local_var) # NameError: name 'local_var' is not defined
Bu örnekte, global_var
global kapsama sahiptir, local_var
ise yerel kapsama (my_function
ile sınırlıdır).
4. Kapsam ve İsim Alanlarının Pratik Uygulamaları
İsim alanlarını ve kapsamı anlamak, modüler, sürdürülebilir kod yazmak için çok önemlidir. Açıklayıcı isimler ve yerel kapsamlı değişkenler okunabilirliği artırır ve istenmeyen yan etkileri azaltır. global
anahtar sözcüğü, fonksiyonlar içinde global değişkenlerin değiştirilmesini sağlar, ancak açıklık için aşırı kullanılmasından kaçınılmalıdır. İsim alanlarının ve kapsamın doğru kullanımı sağlam ve iyi yapılandırılmış Python uygulamalarına yol açar.
Bu ilkelere bağlı kalarak, daha düzenli ve yönetilebilir Python projeleri oluşturabilir, hata olasılığını azaltabilir ve genel kod kalitesini artırabilirsiniz.