Navnet på Python-skriptet eller modulen som kjøres for øyeblikket er lagret i Pythons spesialvariabel __name__. Python 3.0 introduserte variabelen __name__, som er fraværende i Python 2. x. Det gjeldende Python-skriptet eller modulens verdi, __main__, er tilordnet __name__-variabelen mens den kjøres.
Hva betyr _navn_?
Python har en innebygd variabel kalt __name__ som lagrer navnet på skriptet eller modulen som kjøres for øyeblikket. Skriptet eller modulnavnet lagres i __name__-variabelen med mindre den gjeldende modulen kjører, i så fall er verdien __main__ tilordnet den.
Følgelig, når et Python-skript kjøres, bør verdien av variabelen __name__ alltid være __main__ hvis den importeres til et annet Python-skript. Hvis ikke, vil modulens navn vises.
Eksempel:
For å forstå dette ytterligere, la oss bruke et eksempel. Lage en skript i Python kalt testing.py, og legg til følgende kode til den:
# Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything()
Produksjon:
bash while loop
Value of the __name__ : __main__
Forklaring:
Skriptet kjører umiddelbart som hovedprogrammet, som indikert av utdata 'Verdi av navnet: hoved.' I Python settes verdien til skriptets __name__-variabel automatisk til '__main__' når skriptet kjøres direkte. Denne utgangen bekrefter at skriptet kjøres direkte i stedet for å importeres som en modul til et annet skript
La oss nå bygge et annet Python-skript kalt mains.py og importer den forrige inn i den.
Eksempel:
# importing testing.py import testing testing.anything()
Produksjon:
Value of the __name__ : testing
Forklaring:
testing. anything() er metoden som kjøres når skriptet testing.py importeres til et annet Python-skript ved hjelp av importtesting. I denne situasjonen settes navnet på modulen, i dette tilfellet 'testing', som verdien av variabelen __name__ i testing.py i stedet for '__main__'. Av denne grunn, utgangen av testing. anything() er 'Verdi av __navn__: testing.' Dette illustrerer hvordan kjøring av skriptet direkte kontra import av det som en modul påvirker verdien av __name__-variabelen.
Bruke betingelsen hvis navn == main :
Vi bruker hvis uttalelse og tilstanden __navn__ == __main__ å erklære det viss Python-kode bare skal være utføres når skriptet kjøres direkte .
Eksempel:
# importing testing.py import testing if __name__ == __main__: testing.anything()
I dette tilfellet blir den gjeldende modulen eller skriptets evne til å kjøre uavhengig konstatert ved hjelp av strengen __main__. For å indikere for Python-tolkeren at et nøkkelord i variabelen __name__ er reservert eller spesielt, er det to understrekinger på hver side av begrepet.
Kodeeksempel for navn i Python:
Som sagt før, når vi kjører en kodefil, utføres koden direkte - den blir ikke engang importert til en annen fil - og som et resultat endres verdien av variabelen __name__ til __main__.
# defining a function def anything(): print('It is a function in the ScriptP1.') if __name__=='__main__': anything() print('Called from the ScriptP1.') else: print('ScriptP1 is imported into another file.')
Produksjon:
It is a function in the ScriptP1. Called from the ScriptP1.
Forklaring:
Funksjonen any() spesifisert i scriptet ScriptP1 kjøres direkte som hovedprogrammet, som vist av utdata 'Det er en funksjon i ScriptP1.' etterfulgt av 'Called from the ScriptP1.' Når skriptet kjøres direkte i Python, settes __name__ variabelen til '__main__'; følgelig, betingelsen if __name__=='__main__': evalueres til True, og kaller funksjonen any(). Utskriftserklæringen som følger bekrefter at skriptet faktisk kjøres direkte.
govinda skuespiller
La oss nå lage en ny Python-skriptfil med navnet ScriptP2.py, importere ScriptP1.py til den, og prøve å kalle ScriptP1-metoden for any().
Kode: De ScriptP2.py koden er gitt her:
import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.')
Produksjon:
ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2.
Forklaring:
Det medfølgende Python-skriptet viser hvordan du importerer 'ScriptP1'-modulen til det aktive skriptet. Metoden 'anything()' er til stede i 'ScriptP1', og den kalles i hovedskriptet. Denne funksjonen kalles, og skriptet gir ut 'Called from the ScriptP2.' for å indikere at funksjonsanropet er fullført. Denne flyten av hendelser indikerer at funksjonen spesifisert i 'ScriptP1' var tilgjengelig og vellykket utført i sammenheng med skriptet som nå kjører, som er identifisert som 'ScriptP2'.
Når importsetningen for ScriptP1 ble kjørt inne i ScriptP2, hadde variabelen __name__ verdien ScriptP1 (modulnavnet); men siden ScriptP2 var det første skriptet som kjørte, vil det nå ha verdien __main__.
Skrive ut verdien av __navn__ :
La oss skrive ut verdien av __name__-variabelen på hvert trinn av utførelse for å hjelpe deg å forstå den bedre.
Eksempel: ScriptP1.py Python-skriptets kildekode er gitt nedenfor:
print('Value or the variable __name__ : ' + __name__)
Produksjon:
Value or the variable __name__ : __main__
Forklaring:
java hei-program
Eksemplet med Python-kode som leveres gir ut verdien til variabelen __name__, som, når skriptet kjøres direkte, evalueres til 'main'. Det betyr at når skriptet startes direkte, vil kodeblokken som kommer etter betingelsen if __name__ == '__main__': kjøre i stedet for å bli importert som en modul til et annet skript. Denne typen oppførsel brukes ofte for å skille mellom å kjøre et skript som den primære applikasjonen og å importere det til et annet skript som en modul.
Eksempel 2: Og her er skriptet ScriptP2.pys kildekode:
# importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__)
Produksjon:
Value or the variable __name__ : __main__
Forklaring:
Det medfølgende Python-skriptet bruker importsetningen til å importere filen 'ScriptP1.py. ' Når den utføres, skrives 'main' ut som verdien av variabelen __name__. Dette betyr at i stedet for å bli importert som en modul til et annet skript, kjøres skriptet direkte som den primære applikasjonen. Når du kjører Python-skript, er dette den vanlige oppførselen; skriptets utførelseskontekst gjenspeiles i variabelen __name__.
Sammendrag:
I de fleste programmeringsspråk blir hovedmetoden eller funksjonen vanligvis brukt som punktet der ethvert program utføres. Men hva med Python? Utførelse av et Python-program (skript) starter normalt på linje null eller programmets innrykknivå 0. Opprettelsen av en __name__-variabel skjer imidlertid før et Python-program kjøres. Denne variabelen kan brukes til å erstatte hovedmetoden i Python.