Python Fő függvény és metódus: A def Main() megértése
⚡ Okos összefoglaló
Python A main függvény jelöli a kezdőpontot, ahol az interpreter elkezdi futtatni a programot. A def main() paranccsal definiálva és az if __name__ == “__main__” őrrel párosítva elválasztja az újrafelhasználható modulkódot az önálló szkriptvégrehajtástól.

Mi a Python Fő funkció?
Az Python fő funkció bármely program kiindulópontja. A program futtatásakor a Python Az interpreter szekvenciálisan futtatja a kódot. A main függvény csak akkor hajtódik végre, ha egy Python program. Nem fogja futtatni a main függvényt, ha modulként importáljuk.
Miben található a def main() függvény? PythonEnnek megértéséhez vegyük figyelembe a következő példakódot, amely a mag részét képezi Python programozás alapismeretek:
def main() 1. példa
def main():
print ("Hello World!")
print ("Guru99")
Itt kétféle nyomtatási eredményt kaptunk – az egyik a főfüggvényen belül van definiálva, ami a „Hello World!”, a másik pedig független, ami a „Guru99”. Amikor a def main() függvényt futtatod:
- Csak "Guru99 hüvelykes nyomatok
- és nem a „Hello World!” kódot.
Ez azért van, mert nem jelentettük be a felhívást függvény „if__name__== „__main__”.
Fontos, hogy a fő függvény definiálása után hívd meg a kódot if__name__== „__main__”-val, majd futtasd le a kódot, csak akkor kapod meg a „hello world!” kimenetet. a programozókonzolban. Vegye figyelembe a következő kódot
def main() 2. példa
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruEbben az esetben 99 van nyomtatva.
Itt a magyarázat,
- Amikor Python Az interpreter beolvas egy forrásfájlt, akkor az abban található összes kódot végrehajtja.
- Amikor Python a „forrásfájlt” főprogramként futtatja, a speciális változót (__name__) állítja be értékre („__main__”).
- Amikor végrehajtja a fő függvényt a pythonban, akkor az elolvassa az „if” utasítást, és ellenőrzi, hogy a __name__ megegyezik-e a __main__-val.
- In Python "if__name__== "__main__" lehetővé teszi a futtatását Python fájlokat akár mint újrafelhasználható modulok vagy önálló programok.
Miért érdemes main() függvényt használni? Python?
Python nem kényszerít arra, hogy main függvényt írj, mégis a tapasztalt fejlesztők szinte minden nem triviális szkriptben használnak egyet. A def main() minta rendet teremt a fájlokban, és biztonságossá teszi a kód újrafelhasználását. Íme a főbb okok, amiért érdemes használni:
- Tiszta belépési pont: A main() függvény pontosan megmondja az olvasónak, hogy hol kezdődik a program, így a logika könnyen követhető.
- Újrafelhasználható modulok: Code A `_name__ == “__main__” csak közvetlen végrehajtás esetén fut, így más fájlok mellékhatások nélkül importálhatják a függvényeidet.`
- Helyi hatókör: A main() függvényen belül létrehozott változók lokálisak maradnak, ami elkerüli a véletlen ütközéseket a modul más részein található globális nevekkel.
- Egyszerűbb tesztelés: A main() függvényben a logika elkülönítése lehetővé teszi, hogy a tesztkészlet közvetlenül meghívja azt, és ellenőrizze az eredményt.
- Megosztott konvenció: A main() függvény a program belépési pontjának széles körben elismert jelzése, amely javítja a karbantarthatóságot a csapatok között.
Röviden, a main() függvény opcionális Python, de a nagyobb programokat olvasható, tesztelhető és biztonságosan importálható állapotban tartja.
A __name__ változó és Python Modulok
A __name__ változó fontosságának megértéséhez Python fő függvénymódszer, vegye figyelembe a következő kódot:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Most vegyük figyelembe, hogy a kód modulként importálódik
import MainFunction
print("done")
Íme a kód magyarázata: Mint C, Python az ==-t használja az összehasonlításhoz, míg a =-t a hozzárendeléshez. Python Az interpreter kétféleképpen használja a fő funkciót
közvetlen futás:
- __name__=__main__
- if utasítás == True, és a _main_ben lévő parancsfájl végrehajtásra kerül
modulként importálni
- __name__= a modul fájlneve
- if utasítás == false, és a __main__ szkript nem kerül végrehajtásra
A kód végrehajtása után ellenőrzi a modul nevét az „if” karakterlánccal. Ez a mechanizmus biztosítja, hogy a fő funkció csak közvetlen futásként kerüljön végrehajtásra, modulként importálva nem.
A fenti példák Python 3 kód, ha használni szeretnéd Python 2, kérjük, vegye figyelembe a következő kódot
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, nem kell használnia az if__name értéket. A következő kód is működik
def main():
print("Hello World!")
main()
print("Guru99")
Jegyzet: Ügyeljen arra, hogy a main függvény meghatározása után hagyjon némi behúzást, és ne deklarálja a kódot közvetlenül a def main(): függvény alatt, különben behúzási hibát fog adni.
Parancssori argumentumok átadása a Python fő() függvény
A main() függvény a felhasználó által a parancssorban átadott bemenet kezelésének természetes helye. Python ezeket az értékeket a sys.argv listában tárolja, amelyet a standard sys modul biztosít. Az első elem, a sys.argv[0], a szkript neve, és minden utána következő érték a felhasználó által megadott argumentum.
A következő példa parancssori argumentumokat olvas be és nyomtat ki egy main() függvényből:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Ha script.py néven mented el a fájlt és futtatod python script.py alfa béta, a program kinyomtatja a szkript nevét és a ['alpha', 'beta'] listát. Mivel az értékek a main() függvényen belül érkeznek, a logika rendezett marad és könnyen tesztelhető.
Íme néhány gyakorlati tipp a parancssori bevitellel való munkához:
- Vágd ki a szkript nevét: A sys.argv[1:] használatával csak a felhasználó által beírt argumentumokat olvashatja be.
- Használd az argparse-t valódi eszközökhöz: A beépített argparse modul sokkal biztonságosabban elemzi a jelzőket, opciókat és súgószövegeket, mint a sys.argv kézi olvasása.
- Kilépési kód visszaadása: A hívást sys.exit(main()) függvényként kell becsomagolni, így a main() visszatérési értéke lesz a folyamat kilépési állapota.
- Korai validálás: A program többi részének futtatása előtt ellenőrizd a main() függvény elején található argumentumok számát és típusát.
Ez a minta egy egyszerű szkriptet megbízható parancssori eszközzé alakít, miközben keeping minden lépés egyetlen, tesztelhető main() függvényen belül.
Python main() függvény vs. más programozási nyelvek
C nyelvről érkező fejlesztők, C++vagy Java gyakran elvárják egy kötelező main() függvény meglétét. Python másképp működik, mivel ez egy interpretált nyelv, így az interpreter egyszerűen lefuttat egy fájlt a felső sortól az aljáig. A main() függvény a Python tehát inkább konvenció, mint szabály.
- C, C++, C# és Java: A main() függvény egy kötelező belépési pont. A futtatókörnyezet automatikusan meghívja, és programonként csak egy lehet.
- Python: Nincs szükség main() függvényre. A végrehajtás a fájl első soránál kezdődik, és a def main() csak akkor fut le, ha a kód meghívja.
- Az őr: Az if __name__ == “__main__” blokk a következőt adja: Python egy lefordított main() függvényhez hasonló cél, olyan kód megjelölésével, amely csak akkor fut, ha a fájl a főprogram.
Tehát míg más nyelvek kikényszerítenek egy main() belépési pontot, Python rád bízza a választást, ugyanazt az egyértelműséget konvención keresztül kínálva a fordítási szabály helyett.




