Python galvenā funkcija

Šajā apmācībā mēs uzzināsim, kā izmantot Python programmas atribūtu __name__, lai to dinamiski palaistu dažādos kontekstos.

Kāda ir galvenā Python funkcija ()?

Dažām programmēšanas valodām ir īpaša funkcija, ko sauc main()par programmas faila izpildes punktu. Python tulks tomēr katru rindu vada sērijveidā no faila augšdaļas, un tam nav skaidras main()funkcijas.

Python piedāvā citas konvencijas, lai definētu izpildes punktu. Viens no tiem izmanto main()pitona faila funkciju un rekvizītu __name__.

Kas ir __name__ Python?

Mainīgais __name__ ir īpašs iebūvēts Python mainīgais, kas parāda pašreizējā moduļa nosaukumu.

Tam ir dažādas vērtības atkarībā no tā, kur mēs izpildām Python failu. Apskatīsim piemēru.

Palaižot Python failu kā skriptu

Pieņemsim, ka mums ir Python fails ar nosaukumu helloworld.py ar šādu saturu:

 print(__name__) 

Ja palaidām helloworld.py no komandrindas, tas darbojas kā Python skripts. Mēs varam palaist programmu Python, izmantojot šādu komandu:

$ python helloworld.py

Kad mēs palaižam programmu kā skriptu, mainīgā __name__ vērtība tiek iestatīta uz __main__. Tātad šādas programmas rezultāts būs:

 __galvenais 

Palaižot Python failu kā moduli

Mēs varam arī palaist Python failu kā moduli. Lai to izdarītu, mums šis fails ir jāimportē citā Python programmā. Apskatīsim piemēru.

Pieņemsim, ka mums ir Python fails ar nosaukumu main.py tajā pašā direktorijā, kurā ir fails heloworld.py. Tam ir šāds saturs:

 import helloworld 

Palaidot šo failu, mums būs šāda izeja:

 Sveika pasaule 

Šeit mēs varam redzēt, ka, importējot moduli, tiek palaists arī viss moduļa failā esošais kods.

Bet mēs varam redzēt, ka tā vietā, lai parādītu __main__, programma parāda moduļa nosaukumu, ti, kolēģu pasauli.

Tas ir tāpēc, ka saistībā ar Python faila kā moduļa darbību mainīgajam __name__ tiek piešķirts paša moduļa nosaukums.

Izmantojot nosacījumu ar __name__

Tagad, kad esam sapratuši, kā mainīgajam __name__ tiek piešķirtas vērtības, mēs varam izmantot ifnosacījuma klauzulu, lai to pašu Python failu palaistu atšķirīgi dažādos kontekstos.

Apskatīsim piemēru.

Pieņemsim, ka faila helloworld.py saturs tiek mainīts uz šādu:

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

Tagad, kad mēs palaidīsim to kā skriptu, izmantojot komandrindu, izeja būs:

 Sveika pasaule 

Tomēr, kad mēs to palaižam kā moduli, importējot to failā main.py , izeja netiek parādīta, jo main()funkcija netiek izsaukta.

Šeit mēs esam izveidojuši pielāgotu main()funkciju failā helloworld.py . Tas tiek izpildīts tikai tad, kad programma tiek palaista kā atsevišķs skripts, nevis kā importēts modulis.

Šis ir standarta veids, kā skaidri definēt main()funkciju Python. Tas ir viens no populārākajiem Python faila mainīgā __name__ izmantošanas gadījumiem.

Interesanti raksti...