logo

__наме__ у Питхон-у

Име Питхон скрипте или модула који се тренутно извршава чува се у Питхоновој посебној променљивој __наме__. Питхон 3.0 је увео променљиву __наме__, која је одсутна у Питхон-у 2. к. Тренутна Питхон скрипта или вредност модула, __маин__, се додељује променљивој __наме__ док се покреће.

Шта значи _наме_?

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

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

Пример:

Да бисмо ово боље разумели, користимо пример. Направи скрипту у Питхон-у под називом тестинг.пи, и додајте му следећи код:

 # Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything() 

Излаз:

 Value of the __name__ : __main__ 

Објашњење:

Скрипта се покреће одмах као главни програм, што показује излаз 'Вредност имена: маин'. У Питхон-у, вредност променљиве __наме__ скрипте се аутоматски поставља на '__маин__' када се скрипта изврши директно. Овај излаз потврђује да се скрипта покреће директно, а не да се увози као модул у другу скрипту

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

Пример:

 # importing testing.py import testing testing.anything() 

Излаз:

 Value of the __name__ : testing 

Објашњење:

тестирање. Ани() је метод који се покреће када се скрипта тестинг.пи увози у другу Питхон скрипту коришћењем тестирања увоза. У овој ситуацији, име модула, у овом случају „тестирање“, се поставља као вредност променљиве __наме__ у тестинг.пи уместо „__маин__“. Из тог разлога, излаз тестирања. Анитхинг() је 'Вредност тестирања __наме__:.' Ово илуструје како директно покретање скрипте наспрам њеног увоза као модула утиче на вредност променљиве __наме__.

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

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

Пример:

 # importing testing.py import testing if __name__ == __main__: testing.anything() 

У овом случају, способност тренутног модула или скрипте да се покреће независно се утврђује коришћењем стринга __маин__. Да би се Питхон интерпретатору указало да је кључна реч у променљивој __наме__ резервисана или посебна, постоје две доње црте са обе стране термина.

Пример кода за име у Питхон-у:

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

 # 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.') 

Излаз:

 It is a function in the ScriptP1. Called from the ScriptP1. 

Објашњење:

Функција сометхинг() наведена у скрипти СцриптП1 се покреће директно као главни програм, као што показује излаз 'То је функција у СцриптП1.' праћено „Позвано из СцриптП1“. Када се скрипта покреће директно у Питхон-у, променљива __наме__ је подешена на '__маин__'; сходно томе, услов иф __наме__=='__маин__': процењује се на Тачно, позивајући функцију Ани(). Изјава за штампање која следи потврђује да се скрипта заиста покреће директно.

Сада, хајде да направимо нову Питхон датотеку скрипте под називом СцриптП2.пи, увеземо СцриптП1.пи у њу и покушамо да позовемо метод СцриптП1 ани().

код : Тхе СцриптП2.пи код је наведен овде:

 import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.') 

Излаз:

 ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2. 

Објашњење:

Достављена Питхон скрипта показује како да увезете 'СцриптП1' модул у активну скрипту. Метода 'анитхинг()' је присутна у 'СцриптП1' и позива се у главној скрипти. Ова функција се позива, а скрипта даје 'Позвано из СцриптП2'. да означи да је позив функције завршен. Овај ток догађаја указује да је функција наведена у 'СцриптП1' била доступна и успешно изведена у контексту скрипте која је сада покренута, а која је идентификована као 'СцриптП2'.

Када је наредба увоза за СцриптП1 покренута унутар СцриптП2, променљива __наме__ имала је вредност СцриптП1 (име модула); али пошто је СцриптП2 била прва покренута скрипта, сада ће имати вредност __маин__.

Штампање вредности __наме__ :

Хајде да одштампамо вредност променљиве __наме__ у свакој фази извршења да бисмо вам помогли да је боље разумете.

Пример: Изворни код СцриптП1.пи Питхон скрипте је наведен у наставку:

 print('Value or the variable __name__ : ' + __name__) 

Излаз:

 Value or the variable __name__ : __main__ 

Објашњење:

Узорак Питхон кода који је достављен даје вредност променљиве __наме__, која, када се скрипта покрене директно, даје вредност 'маин'. То значи да када се скрипта покрене директно, блок кода који долази после услова иф __наме__ == '__маин__': ће се покренути уместо да буде увезен као модул у другу скрипту. Ова врста понашања се често користи за разликовање између извршавања скрипте као примарне апликације и увоза у другу скрипту као модула.

Пример 2: А ево и изворног кода скрипте СцриптП2.пи:

 # importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__) 

Излаз:

 Value or the variable __name__ : __main__ 

Објашњење:

Достављена Питхон скрипта користи наредбу импорт за увоз датотеке „СцриптП1.пи. ' Када се изврши, 'маин' се штампа као вредност променљиве __наме__. То значи да се уместо увоза као модула у другу скрипту, скрипта извршава директно као примарна апликација. Када се извршавају Питхон скрипте, ово је уобичајено понашање; контекст извршавања скрипте се одражава у променљивој __наме__.

резиме :

У већини програмских језика, главни метод или функција се обично користи као тачка у којој се изводи било који програм. Али шта је са Питхон-ом? Извршавање Питхон програма (скрипте) обично почиње на нултом реду или на нивоу увлачења програма 0. Међутим, креирање променљиве __наме__ се дешава пре него што се покрене Питхон програм. Ова променљива се може користити за замену главног метода у Питхон-у.

тестирање софтвера