CodeBlanks Logo Icon CodeBlanks

__name__ == '__main__'

__name__ == '__main__' ile modül/çalıştırma ayrımını öğrenirsin.

__name__ == '__main__'

Her Python dosyasının gizli bir __name__ değişkeni vardır. Dosya doğrudan çalıştırılırsa __name__ değeri '__main__' olur. Başka bir dosyadan içe aktarılırsa __name__ dosya adı olur:

# betik.py
if __name__ == '__main__':
    print("doğrudan çalıştı")

Bu kalıp, kodun yalnızca dosya doğrudan çalıştırıldığında çalışmasını sağlar. İçe aktarıldığında bu blok atlanır.

Bu, test kodu ve komut satırı giriş noktaları için standarttır.

Neden kullanılır

Bu kalıp iki yaygın durumda kullanılır. Birincisi, bir modülün hem kütüphane hem betik olarak çalışabilmesi. İkincisi, test kodunu modüle gömmek:

def topla(a, b):
    return a + b

if __name__ == '__main__':
    print(topla(2, 3))  # 5

Burada topla fonksiyonu içe aktarılabilir; test print'i yalnızca doğrudan çalıştırmada görünür. Bu, modülleri esnek kılar.

Python projelerinde yaygın bir desendir.

Uygulama __name__ == '__main__' bloğu yaz

if __name__ == '__main__': yaz. Blok içinde print("çalıştı") yaz.

Başlangıç kodu

main.py
# __name__ koşulunu yaz
# blok içinde mesaj yazdır

Örnek çözüm

main.py
if __name__ == '__main__':
    print("çalıştı")

Beklenen çıktı

çalıştı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi __name__ == '__main__' bloğunun amacıdır?

  • Modül içe aktarımını engellemek
  • Sınıf tanımlamak
  • Yalnızca doğrudan çalıştırmada kod çalıştırmak Doğru cevap
  • Değişken tanımlamak

Açıklama: Bu blok yalnızca dosya doğrudan çalıştırıldığında çalışır.

2 __name__ eşleştir

Kavram Anlamı
__name__ Gizli değişken
'__main__' Doğrudan çalıştırma
if __name__ Koşul
import Atlanan blok

3 __name__ değişkenini tamamla

Soru
if ____ == '__main__':
    print('çalıştı')
Cevap
if __name__ == '__main__':
    print('çalıştı')

Açıklama: __name__ değişkeni doğrudan çalıştırmada '__main__' olur.

Başlangıç bölümündeki tüm dersler