Питхон главна функција & амп; Пример методе: Разумевање __маин

Преглед садржаја:

Anonim

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

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

Шта је деф маин () функција у Питхону? Да бисте ово разумели, размотрите следећи пример кода

def main():print ("hello world!")print ("Guru99")

Овде смо добили два примерка - један је дефинисан у оквиру главне функције који је „Хелло Ворлд“, а други је независан, што је „Гуру99“. Када покренете функцију деф маин ():

  • Штампа се само „Гуру99“
  • а не код „Здраво свете“.

То је зато што нисмо прогласили функцију позива „иф__наме __ ==" __маин__ ".

Важно је да након дефинисања главне функције код позовете иф__наме __ == "__маин__" и затим покренете код, тек тада ћете добити излаз "здраво свете!" у програмској конзоли. Размотрите следећи код

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")

У овом случају је штампан Гуру99.

Ево објашњења,

  • Када Питхон интерпретер прочита изворну датотеку, извршиће сав код који се у њој налази.
  • Када Питхон покрене „изворну датотеку“ као главни програм, поставља посебну променљиву (__наме__) да има вредност („__маин__“).
  • Када извршите главну функцију у питхону, она ће тада прочитати израз „иф“ и проверити да ли је __наме__ једнако __маин__.
  • У Питхону „иф__наме __ ==“ __маин__ “ омогућава вам покретање Питхон датотека било као модули за вишекратну употребу или као самостални програми.

Променљива __наме__ и Питхон модул

Да бисте разумели важност променљиве __наме__ у Питхон главној функцијској методи, размотрите следећи код:

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)

Сада размислите, код се увози као модул

import MainFunctionprint("done")

Ево објашњења кода:

Као и Ц, Питхон користи == за поређење, док = за доделу. Питхон интерпретер користи главну функцију на два начина

директно покретање:

  • __име __ = __ главни__
  • иф статемент == Труе, и скрипта у _маин_вилл ће бити извршена

увоз као модул

  • __наме __ = име датотеке модула
  • иф статемент == фалсе, а скрипта у __маин__ неће бити извршена

Када се код изврши, провериће име модула са „ако“. Овај механизам осигурава да се главна функција извршава само као директно покретање, а не када се увози као модул.

Горе наведени примери су Питхон 3 кодови, ако желите да користите Питхон 2, узмите у обзир следећи код

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

У Питхон 3-у не треба да користите иф__наме. Следећи код такође ради

def main():print("Hello World!")main()print("Guru99")

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