Takip et

Python’da __name__ ve __main__: Script Çalıştırma ve Modül İçe Aktarma

Python’da __name__ ve __main__: Script Çalıştırma ve Modül İçe Aktarma

Python’da “__name__” ve “__main__” kavramları, özellikle bir script’in nasıl çalıştırıldığını ve modüllerin nasıl içe aktarıldığını anlamak için önemlidir. Bu kavramları anlamak, kodunuzu daha iyi organize etmenizi, tekrarlayan kodu önlemenizi ve modüler bir şekilde geliştirmenizi sağlar.

__name__ Özelliği

Her Python dosyası (modül) “__name__” adında özel bir değişkene sahiptir. “__name__” değişkeni, dosyanın nasıl çalıştırıldığına bağlı olarak farklı bir değer alır.

  • **Dosya doğrudan çalıştırılıyorsa:** “__name__” değişkeni “__main__” değerini alır.
  • **Dosya bir modül olarak içe aktarılıyorsa:** “__name__” değişkeni dosyanın adını alır.

Bu davranış, kodunuzu koşullu olarak çalıştırmak için kullanılabilir. Örneğin, bir script’in doğrudan çalıştırıldığında çalışması gereken kodları ve bir modül olarak içe aktarıldığında çalışması gereken kodları ayırabilirsiniz.

__main__ Bloğu

“__main__” bloğu, Python’da bir script’in nasıl çalıştırıldığını anlamak için kullanılan temel bir yapıdır. Bu blok, script’in doğrudan çalıştırıldığı zaman çalıştırılan kodları içerir.

“__main__” bloğu, if koşulu kullanılarak oluşturulur:

“`python
if __name__ == “__main__”:
# Bu kod sadece script doğrudan çalıştırıldığında çalışır
“`

“__main__” bloğu genellikle aşağıdaki gibi kullanılabilir:

  • **Script’in başlangıç işlemleri:** Bu blok, script’in başlangıç işlemlerini (örneğin, giriş dosyalarının okunması, değişkenlerin tanımlanması, fonksiyonların çağrılması) gerçekleştirmek için kullanılabilir.
  • **Test kodları:** Test kodları “__main__” bloğu içinde yerleştirilebilir, çünkü bu kodlar sadece script doğrudan çalıştırıldığında çalışır.
  • **Komut satırı argümanlarını işleme:** Bu blok, script’e komut satırı argümanlarını işleme ve bunları kullanma imkanı sağlar.

Modüllerin İçe Aktarma

“__name__” özelliği, modüllerin nasıl içe aktarıldığını ve nasıl çalıştırıldığını anlamak için de kullanılır. Python’da bir modülü içe aktarırken, o modülün “__name__” özelliği modülün adını alır.

Örneğin, bir “mymodule.py” adlı bir dosyamız olduğunu varsayalım. Bu dosyayı “main.py” adlı bir diğer dosyadan içe aktardığımızda, “mymodule.py” dosyasının “__name__” özelliği “mymodule” olacaktır. “main.py” dosyasından “mymodule.py” dosyasını doğrudan çalıştırırsak, “mymodule.py” dosyasının “__name__” özelliği “__main__” olacaktır.

Uygulamalar

“__name__” ve “__main__” özellikleri, Python’da birçok farklı kullanım alanına sahiptir. İşte birkaç örnek:

  • **Fonksiyonların Test Edilmesi:** “__main__” bloğu, fonksiyonları doğrudan çalıştırarak test etmek için ideal bir yerdir.
  • **Script’i Komut Satırı Aracılığıyla Çalıştırma:** “__main__” bloğu, script’e komut satırı argümanları almasını sağlar.
  • **Modüler Kod Geliştirme:** “__name__” özelliği, modülün nasıl çalıştırıldığını anlamak ve koşullu olarak kodları çalıştırmak için kullanılabilir.

Örnek Kod

“`python
# mymodule.py

def greet(name):
print(f”Merhaba {name}!”)

if __name__ == “__main__”:
greet(“Fatih”)
“`

“`python
# main.py

import mymodule

mymodule.greet(“Soysal”)
“`

Bu örnekte, “mymodule.py” dosyası bir modül olarak içe aktarılır ve “main.py” dosyası “mymodule.py” dosyasındaki “greet” fonksiyonunu çağırır. “mymodule.py” dosyasında “greet” fonksiyonunun doğrudan çalıştırıldığını görmek için “mymodule.py” dosyasını doğrudan çalıştırabilirsiniz. Bu durumda, “mymodule.py” dosyasındaki “if __name__ == “__main__”: ” bloğu çalışacak ve “greet(“Fatih”)” fonksiyonunu çağıracaktır.

Sonuç

“__name__” ve “__main__” özellikleri, Python’da script’lerin nasıl çalıştırıldığını ve modüllerin nasıl içe aktarıldığını anlamak için önemlidir. Bu kavramları anlamak, daha iyi organize edilmiş, tekrarlayan kodları olmayan ve modüler bir şekilde geliştirilmiş kodlar yazmanıza yardımcı olur.

Daha fazla bilgi edinmek için aşağıdaki kaynakları ziyaret edebilirsiniz:

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version