if __name__ == "__main__":

Bu kalıbı daha önce görmüş olma olasılığınız oldukça yüksektir. Hemen bakalım.

Bir önceki blogda dir(webbrowser) komutunu yazdığımızda orada __name__ şeklinde bir ifade gördük. Zaten adından da anlayacaksınızdır ama yine de çalıştırıp bakalım.

En aşağıda gördüğünüz gibi bize modülün ismini döndürdü. Peki, __main__ ne oluyor? 'Main'in anlamı 'ana, esas' şeklindedir. Python'da onlarca modül içeren bir kod sayfasını çalıştırdığınızda Python buna '__main__' diyor. Bu noktada diğer modüller yalnızca bir dosya olarak kalıyor. Kısacası o an çalıştırdığınız dosyanın ismi '__main__'dir. İsterseniz bakalım.

Gördüğünüz gibi bu defa __name__ bize, __main__ çıktısını verdi. Bunun sebebi, Python'un anlık olarak deneme.py'yi çalıştırıyor olmasıdır.

Demek ki biz, bir kod sayfasında çalıştırılmasını istediğimiz veya istemediğimiz kodları bu koşul içerisine yazıyoruz. Eğer çalıştırılan dosyanın '__name__'i '__main__' oluyorsa çalıştırılmayan dosyanın '__name__'i normal bir isim olarak kalacaktır.

Şimdi, myModul isimli dosyaya bu ifademizi yazalım. Ancak buna bir de else ekleyelim.

Buradaki if koşulunda şunu dedim: "Eğer __name__ değeri __main__ ise "Cyber Worm" yazdr." Ben, python myModul.py diyerek bunu çalıştırdım ve bu dosya __main__ konumuna düştü. Dolayısıyla if koşulu çalıştı ve ekrana Cyber Worm ifadesi yazdırıldı.

Peki, şimdi de deneme.py içerisine girelim ve myModul.py modülünü oraya import edelim. Bakalım, ne olacak?

Ben, import myModul dememe rağmen deneme.py dosyasını çalıştırdığım için __main__ konumuna düşen dosya deneme.py oldu. Dolayısıyla myModul.py içerisindeki else kısmı çalıştı çünkü myModul.py__main__ rolünde değil.

Bu kısmı birden fazla kez okuma ihtiyacı hissetmeniz oldukça normaldir. Yorulmadan, tekrar tekrar okuyun ve pratik yapın. 


Yayınlanma Tarihi: 2022-11-23 21:51:42

Son Düzenleme Tarihi: 2022-11-25 18:23:37