„Python“ pagrindinė funkcija

Šioje pamokoje sužinosime, kaip naudoti „Python“ programos atributą __name__, kad jis būtų dinamiškai vykdomas skirtinguose kontekstuose.

Kas yra pagrindinė „Python“ funkcija?

Kai kurios programavimo kalbos turi specialią funkciją, vadinamą main()programos failo vykdymo tašku. Tačiau „Python“ vertėjas kiekvieną eilutę paleidžia nuosekliai nuo failo viršaus ir neturi aiškios main()funkcijos.

„Python“ siūlo kitas konvencijas, kad apibrėžtų vykdymo tašką. Vienas iš jų naudoja main()pitono failo funkciją ir savybę __name__.

Kas yra „__name__“ „Python“?

Kintamasis __name__ yra specialus įmontuotas „Python“ kintamasis, rodantis dabartinio modulio pavadinimą.

Jis turi skirtingas reikšmes, priklausomai nuo to, kur vykdome „Python“ failą. Pažvelkime į pavyzdį.

„Python“ failo paleidimas kaip scenarijus

Tarkime, kad turime „Python“ failą, pavadintą helloworld.py ir turinį:

 print(__name__) 

Jei paleidžiame helloworld.py iš komandinės eilutės, tai veikia kaip „Python“ scenarijus. „Python“ programą galime paleisti naudodami šią komandą:

$ python helloworld.py

Kai vykdome programą kaip scenarijų, kintamojo __name__ vertė nustatoma į __main__. Taigi šios programos rezultatas bus:

 __min__ 

„Python“ failo vykdymas kaip modulio

Taip pat galime paleisti „Python“ failą kaip modulį. Tam turime importuoti šį failą į kitą „Python“ programą. Pažvelkime į pavyzdį.

Tarkime, kad mes turime „Python“ failą, vadinamą main.py , tame pačiame kataloge kaip ir failas heloworld.py. Jo turinys yra toks:

 import helloworld 

Paleisdami šį failą turėsime tokį išvestį:

 Labas pasauli 

Čia matome, kad importuojant modulį vykdomas visas kodas modulio faile.

Tačiau galime pastebėti, kad užuot rodžius __main__, programa rodo modulio pavadinimą, ty kolegų pasaulį.

Taip yra todėl, kad vykdant „Python“ failą kaip modulį, paties modulio pavadinimas priskiriamas kintamajam __name__.

Naudojimas, jei sąlyginis, su __name__

Dabar, kai supratome, kaip kintamam __name__ priskiriamos reikšmės, galime naudoti ifsąlyginę sąlygą, kad tas pats „Python“ failas skirtingose ​​situacijose būtų vykdomas skirtingai.

Pažvelkime į pavyzdį.

Tarkime, kad pakeisime helloworld.py failo turinį į šį:

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

Dabar, kai paleisime jį kaip scenarijų per komandinę eilutę, išvestis bus:

 Labas pasauli 

Tačiau kai jį vykdome kaip modulį importuodami į failą main.py , išvestis nerodoma, nes main()funkcija nėra iškviesta.

Čia mes sukūrėme pasirinktinę main()funkciją faile helloworld.py . Jis vykdomas tik tada, kai programa vykdoma kaip atskiras scenarijus, o ne kaip importuotas modulis.

Tai yra standartinis būdas aiškiai apibrėžti „ main()Python “ funkciją. Tai yra vienas iš populiariausių „Python“ failo kintamojo __name__ naudojimo atvejų.

Įdomios straipsniai...