if __name__ == "__main__": ne işe yarar?

Başlatan codemaster, 08 Eylül 2015 - 20:35:03

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

codemaster

if __name__ == "__main__":

Bu kod tam olarak nedemek neden kullanılır biri ayrıntılı anlatırsa sevinirim.

tlg

#1
Çok ayrıntısı yoktur, "main" adlı fonksiyon varsa eğer ordan başlayıp ordan biteceğini belirten deyim diyelim.

Hatta ifadem yanlış olabilir. Modüllerle alakalıymış ve ayrıca , "Eğer __name__ değişkeni __main__ ise bu betiğin doğrudan kendisinin kullanıldığını (yani başka bir betik tarafından içe aktarılmadığını) bildirir."[1]

Şuralara bir bak,
[1]: http://www.istihza.com/forum/viewtopic.php?f=25&t=2043
http://www.istihza.com/forum/viewtopic.php?t=677
https://serturk.wordpress.com/2015/01/06/if-__name__-__main__-nedir/
http://sonsistemci.blogspot.com.tr/2015/09/if-name-main-ifadesi-ne-anlama-geliyor.html

codemaster

Alıntı yapılan: tlg - 08 Eylül 2015 - 22:17:41
Çok ayrıntısı yoktur, "main" adlı fonksiyon varsa eğer ordan başlayıp ordan biteceğini belirten deyim diyelim.
Yanlış biliyorsunuz hocam Pythonda özel bir işlevi var bunun.

Reverser

Tek özel işlevi main fonksiyonu import edilen modülden çağırmayı sağlamasıdır.

XFCE ROCKS !
Powered by Thunar & XFWM4



okkangal

Daha basit şekilde anlatayım ben . Diyelim içinde class ların ve fonksiyonların olan bir py dosyan var . Ayrıca bu dosya içerisinde çalışan ve bir iş yapan kodlarında var . İşte bu çalışan kodlarını if__name__=="main" :   den sonra yazarsan bu py dosyanı başka bir dosyaya import ettiğinde bu kodlar çalışmaz ama sen diğer fonksiyon ya da class larını o dosyadan da erişierek kullanırsın. Ama bu program dosyanı python dosyaadi.py diye çağırıp direk çalıştırırsan işte o zaman main bloğu devreye girer ... 



stock

doctest olarak geçiyor.Oluşturulan fonksiyonlarda ki hataları tespit amaçlı kullanılıyor.Kullanımı basittir halen ilgilenen varsa istek üzerine anlatırım.Şurayı bir incele.https://docs.python.org/2/library/doctest.html

okkangal

if __name__==__main__:  satırının doctest ile ne alakası var .... verilen linkteki örneklerde doctest modülü ve fonksiyonları program çalıştırıldığında devreye girmesi için main satırına yazılmış hepsi bu ... 

Reverser

Kafa karıştırmaya gerek yok. İşlevini @okangal gayet güzel açıklamış aynı şekilde ben de özetleyebildiğimi düşünüyorum.

XFCE ROCKS !
Powered by Thunar & XFWM4