Python Ana İşlevi nedir?
Python main işlevi , herhangi bir programın başlangıç noktasıdır. Program çalıştırıldığında, python yorumlayıcısı kodu sırayla çalıştırır. Ana işlev yalnızca bir Python programı olarak çalıştırıldığında yürütülür. Modül olarak içe aktarılırsa ana işlevi çalıştırmaz.
Python'daki def main () işlevi nedir? Bunu anlamak için aşağıdaki örnek kodu göz önünde bulundurun
def main():print ("hello world!")print ("Guru99")
Burada iki parça çıktı var - biri "Merhaba Dünya" olan ana işlev içinde tanımlanmış ve diğeri bağımsız, "Guru99". Def main () işlevini çalıştırdığınızda:
- Yalnızca "Guru99" yazdırılır
- ve "Merhaba Dünya" kodu değil.
Bunun nedeni, "if__name __ ==" __main__ " çağrı işlevini bildirmemiş olmamızdır.
Ana işlevi tanımladıktan sonra, kodu if__name __ == "__main__" ile çağırmanız ve ardından kodu çalıştırmanız, ancak o zaman "merhaba dünya!" Çıktısını almanız önemlidir. programlama konsolunda. Aşağıdaki kodu düşünün
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 bu durumda yazdırılır.
İşte açıklama,
- Python yorumlayıcısı bir kaynak dosyayı okuduğunda, içinde bulunan tüm kodu çalıştıracaktır.
- Python ana program olarak "kaynak dosya" yı çalıştırdığında, özel değişkeni (__name__) bir değere ("__main__") sahip olacak şekilde ayarlar.
- Python'da ana işlevi çalıştırdığınızda, "if" ifadesini okuyacak ve __name__’ın __main__’e eşit olup olmadığını kontrol edecektir.
- Python'da "if__name __ ==" __main__ " , Python dosyalarını yeniden kullanılabilir modüller veya bağımsız programlar olarak çalıştırmanıza izin verir .
__Name__ değişkeni ve Python Modülü
Python ana işlev yönteminde __name__ değişkeninin önemini anlamak için aşağıdaki kodu göz önünde bulundurun:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Şimdi düşünün, kod bir modül olarak içe aktarılır
import MainFunctionprint("done")
İşte kod açıklaması:
C gibi, Python karşılaştırma için ==, atama için = kullanır. Python yorumlayıcısı ana işlevi iki şekilde kullanır
doğrudan çalıştırma:
- __name __ = __ ana__
- if ifade == True ve _main_ içindeki komut dosyası çalıştırılacak
modül olarak içe aktar
- __name __ = modülün dosya adı
- if ifade == false ve __main__ içindeki komut dosyası çalıştırılmayacak
Kod yürütüldüğünde, modül adını "if" ile kontrol edecektir. Bu mekanizma, ana işlevin, bir modül olarak içe aktarıldığında değil, yalnızca doğrudan çalıştırma olarak yürütülmesini sağlar.
Yukarıdaki örnekler Python 3 kodlarıdır, Python 2'yi kullanmak istiyorsanız, lütfen aşağıdaki kodu göz önünde bulundurun
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
Python 3'te if__name kullanmanıza gerek yoktur. Aşağıdaki kod da işe yarar
def main():print("Hello World!")main()print("Guru99")
Not: main işlevi tanımladıktan sonra, biraz girinti bıraktığınızdan ve kodu def main (): işlevinin hemen altında bildirmediğinizden emin olun, aksi takdirde girinti hatası verir.