Mitä (Pythonin) __name__ sisältää?

Johdanto muuttujaan _ _name_ _ ja sen käyttöön Pythonissa

Olet todennäköisesti nähnyt __name__muuttujan, kun olet käynyt läpi Python-koodin. Alla näet esimerkkikoodinpätkän siitä, miltä se voi näyttää:

if __name__ == '__main__': main()

Tässä artikkelissa haluan näyttää, kuinka voit käyttää tätä muuttujaa moduulien luomiseen Pythonissa.

Miksi muuttujaa _ _name_ _ käytetään?

__name__Muuttuja (kaksi alaviivoja ennen ja jälkeen) on erityinen Python muuttuja. Se saa arvon riippuen siitä, miten suoritamme sisältävän komentosarjan.

Joskus kirjoitat komentosarjan toiminnoilla, joista voi olla hyötyä myös muissa komentosarjoissa. Pythonissa voit tuoda kyseisen komentosarjan moduulina toiseen komentosarjaan.

Tämän erikoismuuttujan ansiosta voit päättää, suoritetaanko komentosarja. Tai että haluat tuoda komentosarjassa määritetyt toiminnot.

Mitä arvoja muuttuja __name__ voi sisältää?

Kun suoritat komentosarjan, __name__muuttuja on yhtä suuri __main__. Kun tuot sisältävän komentosarjan, se sisältää sen nimen.

Katsotaanpa näitä kahta käyttötapaa ja kuvataan prosessi kahdella kuvalla.

Skenaario 1 - Suorita komentosarja

Oletetaan, että kirjoitimme käsikirjoituksennameScript.py seuraavasti:

def myFunction(): print 'The value of __name__ is ' + __name__
def main(): myFunction()
if __name__ == '__main__': main()

Jos suoritat nameScript.py-ohjelmaa, noudatetaan alla olevaa prosessia.

Ennen kuin kaikki muut koodit suoritetaan, __name__muuttujaksi asetetaan __main__. Sen jälkeenmainja myFunctiondef-lauseet suoritetaan. Koska ehto arvioi arvon tosi, päätoiminto kutsutaan. Tämä puolestaan ​​kutsuu myFunction. Tämä tulostaa arvon __main__.

Skenaario 2 - Tuo komentosarja toiseen komentosarjaan

Jos haluamme käyttää myFunctionia uudelleen esimerkiksi toisessa komentosarjassa importingScript.py, voimme tuoda nameScript.pymoduulina.

Koodi importingScript.pyvoi olla seuraava:

import nameScript as ns
ns.myFunction()

Sitten meillä on kaksi soveltamisalaa: yksi importingScriptja toinen nameScript. Kuvassa näet, kuinka se eroaa ensimmäisestä käyttötapauksesta.

Vuonna importingScript.py __name__muuttuja on asetettu __main__. Tuomalla nameScriptin Python alkaa etsiä tiedostoa lisäämällä .pymoduulin nimeen. Sitten se suorittaa tuodun tiedoston sisältämän koodin.

Mutta tällä kertaaon asetettu nimikoodiksi. Jälleen pää- ja myFunction-käskyt suoritetaan. Mutta nyt ehto arvioidaan vääräksi, eikä pääkutsua.

ImportingScript.py-tiedostossa kutsumme myFunction-toimintoa, joka tuottaa nimikirjoituksen. NameScript tunnetaan myFunction-toiminnossa, kun se määritettiin.

Jos tulostat __name__importingScriptissä, tämä tulostaa __main__. Syynä tähän on, että Python käyttää arvoa, joka tunnetaan importingScript-sovelluksessa.

Johtopäätös

Tässä lyhyessä artikkelissa selitin, kuinka __name__muuttujaa voidaan käyttää moduulien kirjoittamiseen. Voit käyttää näitä moduuleja myös yksin. Tämä voidaan tehdä hyödyntämällä sitä, miten näiden muuttujien arvot muuttuvat niiden esiintymispaikan mukaan.