Kas yra („Python“) __name__?

Įvadas į kintamąjį _ _name_ _ ir jo naudojimą „Python“

Greičiausiai pamatėte __name__kintamąjį, kai perėjote „Python“ kodą. Žemiau matote kodo fragmento pavyzdį, kaip jis gali atrodyti:

if __name__ == '__main__': main()

Šiame straipsnyje noriu parodyti, kaip galite naudoti šį kintamąjį kurdami „Python“ modulius.

Kodėl naudojamas kintamasis _ _name_ _?

__name__Kintamasis (du pabraukimo prieš ir po) yra specialus Python kintamasis. Jis gauna savo vertę priklausomai nuo to, kaip vykdome turinį scenarijų.

Kartais rašote scenarijų su funkcijomis, kurios gali būti naudingos ir kituose scenarijuose. „Python“ galite importuoti tą scenarijų kaip modulį į kitą scenarijų.

Dėl šio specialaus kintamojo galite nuspręsti, ar norite paleisti scenarijų. Arba norite importuoti scenarijuje apibrėžtas funkcijas.

Kokias reikšmes gali turėti kintamasis __name__?

Paleidus scenarijų, __name__kintamasis yra lygus __main__. Kai importuosite scenarijų, kuriame yra scenarijus, bus nurodytas scenarijaus pavadinimas.

Pažvelkime į šiuos du naudojimo atvejus ir aprašykite procesą dviem iliustracijomis.

1 scenarijus - paleiskite scenarijų

Tarkime, kad mes parašėme scenarijųnameScript.py taip:

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

Jei vykdote nameScript.py, laikomasi toliau nurodyto proceso.

Prieš paleidžiant visus kitus kodus, __name__kintamasis nustatomas į __main__. Po tomainir myFunctiondef teiginiai vykdomi. Kadangi sąlyga įvertinama kaip teisinga, vadinama pagrindine funkcija. Tai savo ruožtu vadina „myFunction“. Tai atspindi __main__.

2 scenarijus - importuokite scenarijų į kitą scenarijų

Pavyzdžiui, jei norime pakartotinai naudoti „myFunction“ kitame scenarijuje, importingScript.pygalime importuoti nameScript.pykaip modulį.

Kodas importingScript.pygali būti toks:

import nameScript as ns
ns.myFunction()

Tada mes turime dvi taikymo sritis: vieną importingScriptir antrąją nameScript. Paveikslėlyje pamatysite, kuo jis skiriasi nuo pirmojo naudojimo atvejo.

Be importingScript.py __name__kintamasis nustatytas __main__. Importuodamas „NameScript“, „Python“ pradeda ieškoti failo pridėdamas .pyprie modulio pavadinimo. Tada jis paleidžia kodą, esantį importuotame faile.

Bet šį kartąyra nustatytas į „Script “. Vėlgi vykdomi pagrindinio ir myFunction def teiginiai. Bet dabar būklė įvertinama kaip klaidinga, o pagrindinė nėra vadinama.

ImportuodamiScript.py, mes vadiname „myFunction“, kuris išleidžia „nameScript“. „NameF“ yra žinomas „myFunction“, kai ši funkcija buvo apibrėžta.

Jei atspausdintumėte __name__„importingScript“, tai būtų išvestas __main__. To priežastis yra ta, kad „Python“ naudoja vertę, žinomą importavimo scenarijaus srityje.

Išvada

Šiame trumpame straipsnyje aš paaiškinau, kaip galite naudoti __name__kintamąjį moduliams rašyti. Šiuos modulius galite paleisti ir patys. Tai galima padaryti pasinaudojus tuo, kaip keičiasi šių kintamųjų reikšmės, atsižvelgiant į jų atsiradimo vietą.