Python fő funkció

Ebben az oktatóanyagban megtanuljuk, hogyan kell használni a Python program __name__ attribútumát annak dinamikus futtatásához a különböző kontextusokban.

Mi a Python fő () függvénye?

Néhány programozási nyelv rendelkezik egy speciális funkcióval, main()amely egy programfájl végrehajtási pontja. A Python tolmács azonban minden sort sorosan futtat a fájl tetejétől, és nincs kifejezett main()funkciója.

A Python más konvenciókat kínál a végrehajtási pont meghatározására. Az egyikük main()a python fájl függvényét és __name__ tulajdonságát használja.

Mi a __name__ a Pythonban?

A __name__ változó egy speciális beépített Python változó, amely megmutatja az aktuális modul nevét.

Különböző értékekkel rendelkezik attól függően, hogy hova futtatjuk a Python fájlt. Nézzünk meg egy példát.

A Python fájl futtatása parancsfájlként

Tegyük fel, hogy van egy helloworld.py nevű Python fájlunk a következő tartalommal:

 print(__name__) 

Ha a helloworld.py programot a parancssorból futtatjuk , akkor Python szkriptként fut. A Python programot a következő paranccsal futtathatjuk:

$ python helloworld.py

Amikor szkriptként futtatjuk a programot, a __név__ változó értéke __fő__ lesz. Tehát a következő program kimenete a következő lesz:

 __fő__ 

A Python fájl futtatása modulként

Futtathatunk Python fájlt is modulként. Ehhez be kell importálnunk ezt a fájlt egy másik Python programba. Nézzünk meg egy példát.

Tegyük fel, hogy van egy main.py nevű Python fájlunk a heloworld.py fájllal megegyező könyvtárban. A tartalma a következő:

 import helloworld 

A fájl futtatásakor a következő kimenetet kapjuk:

 Helló Világ 

Itt láthatjuk, hogy egy modul importálása a modulfájlban található összes kódot is futtatja.

De láthatjuk, hogy a __main__ megjelenítése helyett a program megjeleníti a modul nevét, azaz a helloworld-t.

Ennek oka, hogy a Python fájl modulként történő futtatásának összefüggésében maga a modul neve is hozzá van rendelve a __name__ változóhoz.

Ha feltételes, akkor a __name__ használatával

Most, hogy megértettük a __name__ változó hozzárendelésének értékeit, használhatjuk a iffeltételes záradékot arra, hogy ugyanazt a Python fájlt különböző futtatásban futtassuk különböző kontextusokban.

Nézzünk meg egy példát.

Tegyük fel, hogy a helloworld.py fájl tartalmát a következőre módosítjuk :

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

Most, amikor parancsfájlként futtatjuk a parancssoron keresztül, a kimenet a következő lesz:

 Helló Világ 

Amikor azonban modulként futtatjuk a main.py fájlba importálva , nem jelenik meg kimenet, mivel a main()függvény nincs meghívva.

Itt létrehoztunk egy egyedi main()függvényt a helloworld.py fájlban. Csak akkor hajtódik végre, ha a program önálló parancsfájlként fut, és nem importált modulként.

Ez a szokásos módszer a main()függvény kifejezett meghatározására a Pythonban. Ez a Python fájl __name__ változójának egyik legnépszerűbb felhasználási esete.

érdekes cikkek...