__name__ == '__main__'
- Python kursu
- Başlangıç
- Ders 109/116
- 5 dk
__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)) # 5Burada 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
# __name__ koşulunu yaz
# blok içinde mesaj yazdırÖrnek çözüm
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
if ____ == '__main__':
print('çalıştı')
if __name__ == '__main__':
print('çalıştı')
Açıklama: __name__ değişkeni doğrudan çalıştırmada '__main__' olur.