Główna funkcja Pythona & Przykład metody: zrozumienie __main

Spisie treści:

Anonim

Co to jest główna funkcja Pythona?

Główna funkcja Pythona jest punktem wyjścia każdego programu. Gdy program jest uruchamiany, interpreter języka Python uruchamia kod sekwencyjnie. Funkcja główna jest wykonywana tylko wtedy, gdy jest uruchamiana jako program w języku Python. Nie uruchomi funkcji głównej, jeśli zostanie zaimportowana jako moduł.

Jaka jest funkcja def main () w Pythonie? Aby to zrozumieć, rozważ poniższy przykładowy kod

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

Tutaj mamy dwa fragmenty druku - jeden jest zdefiniowany w ramach funkcji głównej, czyli „Hello World”, a drugi jest niezależny, czyli „Guru99”. Po uruchomieniu funkcji def main ():

  • Wydrukowano tylko „Guru99”
  • a nie kod „Hello World”.

Dzieje się tak, ponieważ nie zadeklarowaliśmy funkcji wywołania „if__name __ ==„ __main__ ”.

Ważne jest, aby po zdefiniowaniu funkcji głównej wywołać kod przez if__name __ == "__main__", a następnie uruchomić kod, tylko wtedy otrzymasz wynik "hello world!" w konsoli programowania. Rozważmy następujący kod

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

W tym przypadku drukowany jest Guru99.

Oto wyjaśnienie,

  • Kiedy interpreter Pythona odczyta plik źródłowy, wykona cały kod w nim znaleziony.
  • Kiedy Python uruchamia „plik źródłowy” jako program główny, ustawia specjalną zmienną (__name__) na wartość („__main__”).
  • Kiedy wykonujesz główną funkcję w Pythonie, odczyta ona instrukcję „if” i sprawdzi, czy __name__ jest równe __main__.
  • W Pythonie "if__name __ ==" __main__ " umożliwia uruchamianie plików Pythona jako modułów wielokrotnego użytku lub samodzielnych programów.

Zmienna __name__ i moduł Pythona

Aby zrozumieć znaczenie zmiennej __name__ w metodzie funkcji głównej Pythona, rozważ następujący kod:

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

Rozważmy teraz, że kod jest importowany jako moduł

import MainFunctionprint("done")

Oto wyjaśnienie kodu:

Podobnie jak C, Python używa == do porównania, podczas gdy = do przypisania. Interpreter Pythona używa funkcji main na dwa sposoby

bezpośredni bieg:

  • __name __ = __ main__
  • if instrukcja == True, a skrypt w _main_ zostanie wykonany

import jako moduł

  • __name __ = nazwa pliku modułu
  • if == false, a skrypt w __main__ nie zostanie wykonany

Kiedy kod jest wykonywany, sprawdza nazwę modułu z "if". Mechanizm ten zapewnia, że ​​główna funkcja jest wykonywana tylko jako bezpośrednie uruchomienie, a nie w przypadku importu jako moduł.

Powyższe przykłady to kody Pythona 3, jeśli chcesz używać Pythona 2, rozważ poniższy kod

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

W Pythonie 3 nie musisz używać if__name. Poniższy kod również działa

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

Uwaga: Upewnij się, że po zdefiniowaniu funkcji głównej zostawisz trochę wcięcia i nie deklarujesz kodu tuż pod funkcją def main (): w przeciwnym razie zwróci to błąd indent.