Питхон главна функција

У овом упутству научићемо како да користимо атрибут __наме__ програма Питхон за његово динамичко покретање у различитим контекстима.

Која је главна () функција у Питхону?

Неки програмски језици имају посебну функцију main()која се назива тачка извршења програмске датотеке. Питхон интерпретер, међутим, покреће сваки ред серијски од врха датотеке и нема експлицитну main()функцију.

Питхон нуди друге конвенције за дефинисање тачке извршења. Један од њих користи main()функцију и својство __наме__ питхон датотеке.

Шта је __наме__ у Питхону?

Променљива __наме__ је посебна уграђена Питхон променљива која приказује име тренутног модула.

Има различите вредности у зависности од тога где извршавамо Питхон датотеку. Погледајмо пример.

Покретање датотеке Питхон као скрипте

Претпоставимо да имамо Питхон датотеку која се зове хелловорлд.пи са следећим садржајем:

 print(__name__) 

Ако покренемо хелловорлд.пи из командне линије, тада се извршава као Питхон скрипта. Програм Питхон можемо покренути помоћу следеће наредбе:

$ питхон хелловорлд.пи

Када покренемо програм као скрипту, вредност променљиве __наме__ је постављена на __маин__. Тако ће излаз следећег програма бити:

 __главни__ 

Покретање датотеке Питхон као модула

Такође можемо покренути Питхон датотеку као модул. Да бисмо ово урадили, морамо да увеземо ову датотеку у други програм Питхон. Погледајмо пример.

Претпоставимо да имамо Питхон датотеку која се зове маин.пи у истом директоријуму као и датотека хеловорлд.пи. Садржи следећи садржај:

 import helloworld 

Када покренемо ову датотеку, имаћемо следећи излаз:

 Здраво Свете 

Овде видимо да увоз модула такође покреће сав код у датотеци модула.

Али, можемо видети да уместо да приказује __маин__, програм приказује име модула тј. Хелловорлд.

То је зато што је, у контексту покретања Питхон датотеке као модула, име самог модула додељено променљивој __наме__.

Коришћење иф условно са __наме__

Сада када смо схватили како се променљивој __наме__ додељују вредности, можемо користити ifусловну клаузулу за различито покретање исте датотеке Питхон у различитим контекстима.

Погледајмо пример.

Претпоставимо да променимо садржај датотеке хелловорлд.пи у следеће:

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

Сада, када га покренемо као скрипту преко командне линије, излаз ће бити:

 Здраво Свете 

Међутим, када га покренемо као модул увозећи га у датотеку маин.пи , излаз се не приказује јер се main()функција не позива.

Овде смо креирали прилагођену main()функцију у датотеци хелловорлд.пи . Извршава се само када се програм покреће као самостална скрипта, а не као увезени модул.

Ово је стандардни начин да се експлицитно дефинише main()функција у Питхону. То је један од најпопуларнијих случајева употребе променљиве __наме__ Питхон датотеке.

Занимљиви Чланци...