Python Ana İşlevi & Yöntem Örneği: __main__'i Anlayın

İçindekiler:

Anonim

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.