Python Funkcja i metoda główna: Zrozumienie def Main()
⚡ Inteligentne podsumowanie
Python Funkcja main oznacza punkt początkowy, w którym interpreter rozpoczyna uruchamianie programu. Zdefiniowana za pomocą def main() i sparowana z klauzulą if __name__ == “__main__”, oddziela wielokrotnego użytku kod modułu od samodzielnego wykonywania skryptu.

Czym jest Python Główna funkcja?
Python główna funkcja jest punktem początkowym każdego programu. Po uruchomieniu programu, Python Interpreter uruchamia kod sekwencyjnie. Funkcja główna jest wykonywana tylko wtedy, gdy jest uruchamiana jako Python program. Funkcja główna nie zostanie uruchomiona, jeśli zostanie zaimportowana jako moduł.
Do czego służy funkcja def main()? PythonAby to zrozumieć, rozważ poniższy przykładowy kod, który jest częścią rdzenia Python programowanie podstawy:
def main() Przykład 1
def main():
print ("Hello World!")
print ("Guru99")
Tutaj mamy dwa fragmenty wydruku – jeden jest zdefiniowany w funkcji głównej, czyli „Witaj świecie!”, a drugi jest niezależny i brzmi „Guru99”. Po uruchomieniu funkcji def main():
- Tylko "GuruWydruki 99”
- a nie kod „Hello World!”
To dlatego, że nie zadeklarowaliśmy wezwania funkcja „if__name__== „__main__”.
Ważne jest, aby po zdefiniowaniu funkcji main wywołać kod za pomocą if__name__== “__main__” i następnie uruchomić kod, tylko wtedy otrzymasz wynik „hello world!” w konsoli programowania. Rozważ następujący kod
def main() Przykład 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruW tym przypadku wydrukowano liczbę 99.
Oto wyjaśnienie,
- Kiedy Python interpreter czyta plik źródłowy, wykona cały znajdujący się w nim kod.
- Kiedy Python uruchamia „plik źródłowy” jako program główny, ustawia zmienną specjalną (__nazwa__) na wartość („__main__”).
- Kiedy wykonasz główną funkcję w Pythonie, odczyta ona instrukcję „if” i sprawdzi, czy __name__ jest równe __main__.
- In Python „if__name__== „__main__” pozwala na uruchomienie Python pliki albo jako moduły wielokrotnego użytku lub samodzielne programy.
Dlaczego warto używać funkcji main() w Python?
Python Nie wymaga pisania funkcji main, a mimo to doświadczeni programiści używają jej w niemal każdym nietrywialnym skrypcie. Wzorzec def main() porządkuje plik i sprawia, że kod jest bezpieczny do ponownego użycia. Oto główne powody, dla których warto go używać:
- Wyczyść punkt wejścia: Funkcja main() informuje czytelnika, gdzie dokładnie rozpoczyna się program, dzięki czemu logika jest łatwa do zrozumienia.
- Moduły wielokrotnego użytku: Code chronione przez if __name__ == “__main__” działa tylko przy bezpośrednim wykonaniu, więc inne pliki mogą importować twoje funkcje bez efektów ubocznych.
- Zasięg lokalny: Zmienne utworzone w funkcji main() pozostają lokalne, co pozwala uniknąć przypadkowych konfliktów z nazwami globalnymi w innych częściach modułu.
- Łatwiejsze testowanie: Izolowanie logiki w funkcji main() pozwala zestawowi testów na bezpośrednie wywołanie jej i sprawdzenie wyniku.
- Wspólna konwencja: Funkcja main() jest powszechnie rozpoznawanym sygnałem punktu wejścia programu, który poprawia łatwość utrzymania w różnych zespołach.
Krótko mówiąc, funkcja main() jest opcjonalna w Pythonale dzięki temu większe programy pozostają czytelne, możliwe do przetestowania i bezpieczne do zaimportowania.
Zmienna __name__ i Python Moduł
Aby zrozumieć znaczenie zmiennej __name__ w Python metoda funkcji main, rozważmy następujący kod:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Teraz rozważmy, że kod jest importowany jako moduł
import MainFunction
print("done")
Oto wyjaśnienie kodu: Podobnie jak C. Python używa == do porównania, podczas gdy = do przypisania. Python interpreter używa funkcji main na dwa sposoby
bieg bezpośredni:
- __imię__=__główny__
- if instrukcja == True, a skrypt w _main_zostanie wykonany
importuj jako moduł
- __name__= nazwa pliku modułu
- if instrukcja == false, a skrypt w __main__ nie zostanie wykonany
Kiedy kod zostanie wykonany, sprawdzi nazwę modułu za pomocą „if”. Mechanizm ten zapewnia, że główna funkcja jest wykonywana tylko jako bezpośrednie działanie, a nie podczas importu jako moduł.
Powyższe przykłady to Python 3 kody, jeśli chcesz skorzystać Python 2, proszę rozważyć poniższy kod
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 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 main pozostawisz wcięcie i nie zadeklarujesz kodu bezpośrednio pod funkcją def main(): , w przeciwnym razie wystąpi błąd wcięcia.
Jak przekazać argumenty wiersza poleceń do Python Funkcja main()
Funkcja main() to naturalne miejsce do obsługi danych wejściowych przekazywanych przez użytkownika w wierszu poleceń. Python Przechowuje te wartości na liście sys.argv, którą udostępnia standardowy moduł sys. Pierwszy element, sys.argv[0], to nazwa skryptu, a każda następna wartość to argument podany przez użytkownika.
Poniższy przykład odczytuje i drukuje argumenty wiersza poleceń z wnętrza funkcji main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Jeśli zapiszesz plik jako script.py i uruchomisz python script.py alfa betaProgram drukuje nazwę skryptu i listę ['alpha', 'beta']. Ponieważ wartości trafiają do main(), logika pozostaje uporządkowana i łatwa do przetestowania.
Oto kilka praktycznych wskazówek dotyczących pracy z danymi wejściowymi wiersza poleceń:
- Wytnij nazwę skryptu: Użyj sys.argv[1:], aby odczytać tylko argumenty wpisane przez użytkownika.
- Użyj argparse w przypadku prawdziwych narzędzi: Wbudowany moduł argparse analizuje flagi, opcje i tekst pomocy znacznie bezpieczniej niż ręczne czytanie pliku sys.argv.
- Zwróć kod wyjścia: Otocz wywołanie jako sys.exit(main()), tak aby wartość zwracana przez main() stała się kodem wyjścia procesu.
- Sprawdź wcześniej: Przed uruchomieniem reszty programu sprawdź liczbę i typ argumentów na początku funkcji main().
Ten wzorzec zmienia prosty skrypt w niezawodne narzędzie wiersza poleceń, zachowując jednocześnieping każdy krok w ramach pojedynczej, testowalnej funkcji main().
Python Funkcja main() a inne języki programowania
Programiści pochodzący z C, C++lub Java często oczekują obowiązkowej funkcji main(). Python Działa inaczej, ponieważ jest językiem interpretowanym, więc interpreter po prostu uruchamia plik od górnej linii do dolnej. Funkcja main() w Python jest zatem raczej konwencją niż regułą.
- C, C++, C# i Java: Funkcja main() jest wymaganym punktem wejścia. Środowisko wykonawcze wywołuje ją automatycznie i może istnieć tylko jedna taka funkcja w programie.
- Python: Funkcja main() nie jest wymagana. Wykonywanie rozpoczyna się od pierwszego wiersza pliku, a def main() działa tylko wtedy, gdy wywoła ją Twój kod.
- Strażnik: Blok if __name__ == “__main__” daje Python cel podobny do skompilowanego main() poprzez oznaczenie kodu, który powinien zostać uruchomiony tylko wtedy, gdy plik jest programem głównym.
Podczas gdy inne języki wymuszają punkt wejścia main(), Python pozostawia wybór Tobie, oferując taką samą przejrzystość poprzez konwencję zamiast reguły kompilatora.




