Bevezetés a _ _name_ _ változóba és annak használatába a Pythonban
Valószínűleg akkor látta a __name__
változót, amikor átment a Python-kódon. Az alábbiakban láthat egy példát a kódrészletre, hogyan nézhet ki:
if __name__ == '__main__': main()
Ebben a cikkben szeretném megmutatni, hogyan használhatja ezt a változót modulok létrehozására a Pythonban.
Miért használják a _ _name_ _ változót?
A __name__
változó (két aláhúzás előtte és utána) egy speciális Python változó. Értékét attól függően kapja meg, hogy miként hajtjuk végre a tartalmazó szkriptet.
Néha olyan parancsfájlt ír meg, amely más szkriptekben is hasznos lehet. A Pythonban ezt a parancsfájlt modulként importálhatja egy másik parancsfájlba.
Ennek a speciális változónak köszönhetően eldöntheti, hogy futtatja-e a parancsfájlt. Vagy importálni szeretné a parancsfájlban definiált függvényeket.
Milyen értékeket tartalmazhat a __name__ változó?
A parancsfájl futtatásakor a __name__
változó megegyezik __main__
. A tartalmazó szkript importálásakor a szkript nevét is tartalmazza.
Vessünk egy pillantást erre a két felhasználási esetre, és két illusztrációval írjuk le a folyamatot.
1. forgatókönyv - Futtassa a szkriptet
Tegyük fel, hogy mi írtuk a forgatókönyvetnameScript.py
alábbiak szerint:
def myFunction(): print 'The value of __name__ is ' + __name__
def main(): myFunction()
if __name__ == '__main__': main()
Ha a nameScript.py fájlt futtatja, akkor az alábbi eljárást követi.

Az összes többi kód futtatása előtt a __name__
változó értéke __main__. Ezt követően amain
és myFunction
def utasításokat futtatunk. Mivel az állapot igaznak minősül, a fő funkciót hívjuk meg. Ez viszont myFunction-t hív. Ez kinyomtatja a __main__
.
2. forgatókönyv - Importálja a szkriptet egy másik szkriptbe
Ha például a myFunction importingScript.py
funkciót egy másik szkriptben szeretnénk újból felhasználni , importálhatjuk nameScript.py
modulként.
A kód a importingScript.py
következő lehet:
import nameScript as ns
ns.myFunction()
Ezután két importingScript
hatókörünk van: az egyik és a második hatókör nameScript
. Az ábrán láthatja, hogy miben különbözik az első használat esetétől.

Az importingScript.py __name__
fájlban a változó értéke __main__. A NameScript importálásával a Python elkezdi keresni a fájlt azáltal, hogy hozzáadja .py
a modul nevéhez. Ezután futtatja az importált fájlban található kódot.
De ezúttalnévnévre van állítva. Ismét a main és a myFunction def utasításai futnak. De most az állapot hamisnak minősül, és a főt nem hívják meg.
Az importingScript.py fájlban meghívjuk a myFunction funkciót, amely a nameScript-t adja ki. A nameScript akkor ismert a myFunction számára, amikor ezt a függvényt definiálták.
Ha __name__
az importingScript-ben nyomtatna , akkor ez kimenetet eredményezne __main__
. Ennek az az oka, hogy a Python az importingScript hatókörében ismert értéket használja.
Következtetés
Ebben a rövid cikkben elmagyaráztam, hogyan használható a __name__
változó modulok írására. Ezeket a modulokat önállóan is futtathatja. Ezt úgy tehetjük meg, hogy felhasználjuk, hogyan változnak ezen változók értékei attól függően, hogy hol fordulnak elő.