Python Ana Fonksiyon ve Metot: def Main() fonksiyonunu anlayın.

⚡ Akıllı Özet

Python `main` fonksiyonu, yorumlayıcının bir programı çalıştırmaya başladığı başlangıç ​​noktasını işaretler. `def main()` ile tanımlanır ve `if __name__ == “__main__”` koşuluyla eşleştirilir; bu sayede yeniden kullanılabilir modül kodu, bağımsız betik yürütmesinden ayrılır.

  • ???? Giriş noktası: Ana fonksiyon, programın çalıştırılmaya nerede başlayacağını tanımlar; böylece okuyucular, programın akışını tek bir net başlangıç ​​noktasından takip edebilirler.
  • 🧩 def main():: Şalping `def main()` içindeki mantık, kurulum ve yürütmeyi fonksiyon ve sınıf tanımlarından ayrı tutar.
  • 🔒 __isim__ koruyucu: `if __name__ == “__main__”` kontrolü, `main()` fonksiyonunu yalnızca doğrudan çalıştırmada çalıştırır, içe aktarma işleminde asla çalıştırmaz.
  • 🔁 Tekrar kullanılabilir modüller: Korumalı kod, diğer komut dosyalarının tüm programı çalıştırmadan fonksiyonlarınızı içe aktarmasına olanak tanır.
  • ⌨️ Komut satırı girişi: main() fonksiyonu, sys.argv argümanlarını okumak ve çıkış durumunu döndürmek için en uygun yerdir.
  • 🤖 Yapay zeka yardımı: GitHub Copilot gibi yapay zeka asistanları, kısa bir komut isteminden main() fonksiyonunun temel şablonunu ve __name__ koruyucusunu oluşturur.

Python Ana Fonksiyon

Nedir? Python Ana İşlev?

MKS Python ana işlev Herhangi bir programın başlangıç ​​noktasıdır. Program çalıştırıldığında, Python Yorumlayıcı kodu sırayla çalıştırır. Ana fonksiyon yalnızca yorumlayıcı olarak çalıştırıldığında yürütülür. Python Program, modül olarak içe aktarılırsa ana fonksiyonu çalıştırmayacaktır.

def main() işlevi nedir? PythonBunu anlamak için, çekirdeğin bir parçası olan aşağıdaki örnek koda göz atın. Python programlama temel bilgiler:

def main() Örnek 1

def main():
     print ("Hello World!")
print ("Guru99")

Python Ana Fonksiyon

Burada iki adet çıktı aldık; biri ana fonksiyon içinde tanımlanmış olan "Merhaba Dünya!", diğeri ise bağımsız olan "Guru99”. def main() fonksiyonunu çalıştırdığınızda:

  • Bir tek "Guru99” baskı çıktısı
  • ve “Merhaba Dünya!” kodu değil

Çünkü çağrıyı duyurmadık işlev “if__name__== “__main__”.

Ana fonksiyonu tanımladıktan sonra, if__name__== “__main__” ile kodu çağırmanız ve ardından kodu çalıştırmanız önemlidir, ancak o zaman programlama konsolunda “hello world!” çıktısını alırsınız. Aşağıdaki kodu göz önünde bulundurun

def main() Örnek 2

def main():
    print("Hello World!")

if __name__ == "__main__":
    main()

print("Guru99")

GuruBu kutuda 99 rakamı basılıdır.

Python Ana Fonksiyon

İşte açıklama,

  • Ne zaman Python yorumlayıcı bir kaynak dosyayı okursa, içinde bulunan tüm kodu çalıştırır.
  • Ne zaman Python “kaynak dosyayı” ana program olarak çalıştırır, özel değişkeni (__name__) bir değere (“__main__”) sahip olacak şekilde ayarlar.
  • Python'da ana işlevi çalıştırdığınızda, Python "if" ifadesini okuyacak ve __name__'nin __main__'ye eşit olup olmadığını kontrol edecektir.
  • In Python “if__name__== “__ana__” çalıştırmanıza izin verir Python dosyalar şu şekilde yeniden kullanılabilir modüller veya bağımsız programlar.

Bir kodda main() fonksiyonunu neden kullanırız? Python?

Python Ana fonksiyon yazmanızı zorunlu kılmaz, ancak deneyimli geliştiriciler neredeyse her karmaşık kodda bir tane kullanır. `def main()` kalıbı dosyaya düzen getirir ve kodun yeniden kullanımını güvenli hale getirir. İşte onu kullanmanın başlıca nedenleri:

  • Net giriş noktası: main() fonksiyonu, programın tam olarak nereden başladığını okuyucuya açıkça belirtir, bu nedenle mantığı takip etmek kolaydır.
  • Tekrar kullanılabilir modüller: Code `__name__ == “__main__”` koşuluyla çalışır ve yalnızca doğrudan çalıştırmada kullanılır, böylece diğer dosyalar fonksiyonlarınızı yan etkiler olmadan içe aktarabilir.
  • Yerel kapsam: main() fonksiyonu içinde oluşturulan değişkenler yerel kalır; bu da modülün başka yerlerindeki global adlarla olası çakışmaları önler.
  • Daha kolay test etme: Mantığı main() fonksiyonunda izole etmek, test paketinin onu doğrudan çağırmasına ve sonucu kontrol etmesine olanak tanır.
  • Ortak sözleşme: main() fonksiyonu, programın giriş noktasını belirten ve ekipler arası bakım kolaylığını artıran, yaygın olarak kabul görmüş bir fonksiyondur.

Özetle, main() fonksiyonu isteğe bağlıdır. PythonAncak bu, daha büyük programların okunabilir, test edilebilir ve güvenli bir şekilde içe aktarılmasını sağlar.

__name__ değişkeni ve Python modül

__name__ değişkeninin önemini anlamak Python ana fonksiyon metodu 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__)

__name__ değişkeni ve Python modül

Şimdi düşünün, kod modül olarak içe aktarılıyor

import MainFunction

print("done")

__name__ değişkeni ve Python modül

İşte kodun açıklaması: C gibi, Python Karşılaştırma için == kullanırken atama için = kullanılır. Python tercüman ana işlevi iki şekilde kullanır

doğrudan çalıştırma:

  • __isim__=__ana__
  • if ifadesi == Doğru ve _main_'deki komut dosyası yürütülecek

modül olarak içe aktar

  • __name__= modülün dosya adı
  • if ifadesi == false ve __main__ içindeki komut dosyası çalıştırılmayacak

Kod çalıştırıldığında “if” ile modül adını 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 Kullanmak istiyorsanız 3 kod Python 2, lütfen aşağıdaki kodu göz önünde bulundurun

def main():
  print "Hello World!"
  
if __name__== "__main__":
  main()

print "Guru99"

In Python 3, if__name kullanmanıza gerek yok. Aşağıdaki kod da işe yarar

def main():
  print("Hello World!")
  
main()
print("Guru99")

Not: Ana fonksiyonu tanımladıktan sonra biraz girinti bıraktığınızdan ve def main(): fonksiyonunun hemen altındaki kodu tanımlamadığınızdan emin olun, aksi takdirde girinti hatası alırsınız.

Komut satırı argümanlarını nasıl iletebilirsiniz? Python ana işlev

main() fonksiyonu, kullanıcının komut satırından ilettiği girdiyi işlemek için en uygun yerdir. Python Bu değerler, standart sys modülünün sağladığı sys.argv listesinde saklanır. İlk öğe, sys.argv[0], komut dosyasının adıdır ve ondan sonraki her değer, kullanıcı tarafından sağlanan bir argümandır.

Aşağıdaki örnek, main() fonksiyonunun içinden komut satırı argümanlarını okur ve yazdırır:

import sys

def main():
    print("Script name:", sys.argv[0])
    print("Arguments passed:", sys.argv[1:])

if __name__ == "__main__":
    main()

Dosyayı script.py olarak kaydedip çalıştırırsanız python script.py alpha betaProgram, komut dosyasının adını ve ['alpha', 'beta'] listesini yazdırır. Değerler main() fonksiyonunun içinde geldiği için mantık düzenli kalır ve test edilmesi kolaylaşır.

Komut satırı girdisiyle çalışırken işinize yarayacak birkaç pratik ipucu şunlardır:

  • Komut dosyasının adını kesin: Yalnızca kullanıcının yazdığı argümanları okumak için sys.argv[1:] kullanın.
  • argparse'ı gerçek araçlar için kullanın: Dahili argparse modülü, bayrakları, seçenekleri ve yardım metinlerini sys.argv dosyasını elle okumaya kıyasla çok daha güvenli bir şekilde ayrıştırır.
  • Çıkış kodu döndürün: Çağrıyı sys.exit(main()) şeklinde sarmalayın, böylece main() fonksiyonunun dönüş değeri işlem çıkış durumu olur.
  • Erken doğrulayın: Programın geri kalanını çalıştırmadan önce main() fonksiyonunun en üstündeki argümanların sayısını ve türünü kontrol edin.

Bu yöntem, basit bir betiği güvenilir bir komut satırı aracına dönüştürürken, aynı zamanda işlevselliği de korur.ping Tek bir, test edilebilir main() fonksiyonunun içindeki her adım.

Python main() Fonksiyonu ve Diğer Programlama Dilleri Arasındaki Farklar

C dilinden gelen geliştiriciler, C++ya da Java Genellikle zorunlu bir main() fonksiyonu beklenir. Python Bu, yorumlanan bir dil olduğu için farklı çalışır; bu nedenle yorumlayıcı, dosyayı en üst satırdan en alt satıra doğru çalıştırır. main() fonksiyonu ise... Python Bu nedenle bir kuraldan ziyade bir uzlaşmadır.

  • C, C++, C# ve Java: main() fonksiyonu zorunlu bir giriş noktasıdır. Çalışma zamanı bunu otomatik olarak çağırır ve program başına yalnızca bir tane olabilir.
  • Python: main() fonksiyonuna gerek yoktur. Çalıştırma dosyanın ilk satırından başlar ve def main() fonksiyonu yalnızca kodunuz onu çağırdığında çalışır.
  • Muhafız: `if __name__ == “__main__”` bloğu şu sonucu verir: Python Dosya ana program olduğunda çalıştırılması gereken kodu işaretleyerek, derlenmiş bir main() fonksiyonuna benzer bir amaca hizmet eder.

Dolayısıyla diğer diller main() giriş noktasını zorunlu kılarken, Python Seçimi size bırakıyor ve derleyici kuralı yerine gelenek yoluyla aynı netliği sunuyor.

SSS

__main__ isimdir Python __name__ değişkeni aracılığıyla algılanan en üst düzey betiği verir. main() ise program mantığınızı içeren sıradan, kullanıcı tanımlı bir fonksiyondur. Birlikte çalışırlar, ancak __main__ bir ortam adı iken main() bir fonksiyondur.

En sona koymak şunları sağlar: Python Blok main() fonksiyonunu çağırmadan önce yukarıdaki her fonksiyon ve sınıf zaten tanımlanmıştır. Bunu daha erken çalıştırmak, henüz tanımlanmamış isimlere referans verebilir ve bir NameError hatası verebilir.

Hayır. Python "main" ismine özel bir anlam yüklenmez. Giriş fonksiyonuna istediğiniz adı verebilirsiniz, ancak "main()" adını kullanmak, programın başlangıç ​​noktasını diğer geliştiricilere bildiren güçlü bir gelenektir.

Evet. main() fonksiyonu bir değer döndürebilir ve yaygın bir yazım şekli sys.exit(main()) şeklindedir; böylece döndürülen değer işlem çıkış kodu olur. 0 döndürmek başarıyı, sıfırdan farklı bir değer ise hatayı işaret eder.

Bu koruma mekanizması olmadan, main() fonksiyonu hem dosya doğrudan çalıştırıldığında hem de içe aktarıldığında çalışır. Sadece bu fonksiyonları yeniden kullanmak isteyen diğer programlar istenmeyen yürütmeye ve yan etkilere neden olur.

`main()` fonksiyonunun gövdesi, `def main():` satırının altına girintili olarak yazılmalıdır. Sonraki ifadeyi sola hizalayarak yazmak, fonksiyonu girintili bir blok olmadan bırakır, bu nedenle Python Girinti hatası veriyor. Tutarlı boşluklar veya sekme ekleyin.

GitHub Copilot, kısa bir yorumdan `def main()` iskeletini ve `if __name__ == “__main__”` koşulunu otomatik olarak tamamlar. Ayrıca argüman ayrıştırma ve doküman dizeleri konusunda öneriler sunarak, gereksiz kodlarla uğraşmak yerine program mantığına odaklanmanızı sağlar.

Yapay zeka ve makine öğrenimi projelerinde, main() fonksiyonu eğitim veya çıkarım komut dosyaları için giriş noktasıdır. Komut satırı argümanlarından hiperparametreleri okur, yardımcı programları yeniden kullanım için içe aktarılabilir halde tutar ve deneylerin test edilmesini ve otomatikleştirilmesini kolaylaştırır.

Bu yazıyı şu şekilde özetleyin: