Python Hlavní funkce a metoda: Pochopení def Main()
⚡ Chytré shrnutí
Python Funkce main označuje počáteční bod, kde interpret začíná běh programu. Definována pomocí def main() a spárována s ochranným parametrem if __name__ == „__main__“ odděluje opakovaně použitelný kód modulu od samostatného spuštění skriptu.

Co je to Python Hlavní funkce?
Jedno Python hlavní funkce je výchozím bodem každého programu. Když je program spuštěn, Python Interpret spouští kód sekvenčně. Funkce main se provede pouze tehdy, když je spuštěna jako Python program. Pokud je importován jako modul, nespustí hlavní funkci.
V čem je funkce def main()? PythonAbychom tomu porozuměli, zvažte následující příklad kódu, který je součástí jádra Python programování základy:
def main() Příklad 1
def main():
print ("Hello World!")
print ("Guru99")
Zde máme dva výtisky – jeden je definován v rámci hlavní funkce „Hello World!“ a druhý je nezávislý, tedy „Guru99“. Když spustíte funkci def main ():
- Pouze "Guruvýtisky o velikosti 99 palců (99 palců)
- a ne kód „Ahoj světe!“
Je to proto, že jsme výzvu nevyhlásili funkce „if__name__== „__main__“.
Je důležité, abyste po definování hlavní funkce zavolali kód pomocí if__name__== „__main__“ a poté kód spustili, teprve potom dostanete výstup „ahoj světe!“ v programovací konzoli. Zvažte následující kód
def main() Příklad 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruV tomto případě je vytištěno číslo 99.
Zde je vysvětlení,
- Kdy Python interpret přečte zdrojový soubor, spustí veškerý kód v něm nalezený.
- Kdy Python spustí „zdrojový soubor“ jako hlavní program, nastaví speciální proměnnou (__name__) hodnotu („__main__“).
- Když v pythonu spustíte hlavní funkci, přečte si příkaz „if“ a zkontroluje, zda se __name__ rovná __main__.
- In Python “if__name__== “__main__” umožňuje spustit Python soubory buď jako opakovaně použitelné moduly nebo samostatné programy.
Proč používat funkci main() v Python?
Python vás nenutí psát hlavní funkci, přesto ji zkušení vývojáři používají téměř v každém netriviálním skriptu. Vzor def main() vnáší do souboru řád a umožňuje bezpečné opětovné použití kódu. Zde jsou hlavní důvody, proč ho používat:
- Jasný vstupní bod: Funkce main() přesně sděluje čtenáři, kde program začíná, takže logika je snadno sledovatelná.
- Opakovaně použitelné moduly: Code Chráněno příkazem if __name__ == „__main__“ běží pouze při přímém spuštění, takže ostatní soubory mohou importovat vaše funkce bez vedlejších účinků.
- Místní rozsah: Proměnné vytvořené uvnitř main() zůstávají lokální, což zabraňuje náhodným kolizím s globálními názvy jinde v modulu.
- Snadnější testování: Izolace logiky v main() umožňuje testovací sadě volat ji přímo a zkontrolovat výsledek.
- Sdílená konvence: Funkce main() je široce uznávaný signál vstupního bodu programu, který zlepšuje udržovatelnost napříč týmy.
Stručně řečeno, funkce main() je volitelná v Python, ale udržuje větší programy čitelné, testovatelné a bezpečné pro import.
Proměnná __name__ a Python Modul
Abychom pochopili důležitost proměnné __name__ v Python metoda hlavní funkce, zvažte následující kód:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Nyní zvažte, že kód je importován jako modul
import MainFunction
print("done")
Zde je vysvětlení kódu: jako C, Python používá == pro srovnání, zatímco = pro přiřazení. Python interpret používá hlavní funkci dvěma způsoby
přímý běh:
- __name__=__main__
- if == True a skript v _main_bude spuštěn
importovat jako modul
- __name__= název souboru modulu
- if == false a skript v __main__ nebude proveden
Když je kód spuštěn, zkontroluje název modulu pomocí „if“. Tento mechanismus zajišťuje, že hlavní funkce se provádí pouze jako přímé spuštění, nikoli při importu jako modul.
Výše uvedené příklady jsou Python 3 kódy, pokud chcete použít Python 2, zvažte prosím následující kód
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, nemusíte používat if__name. Následující kód také funguje
def main():
print("Hello World!")
main()
print("Guru99")
Poznámka: Ujistěte se, že po definování funkce main necháte nějaké odsazení a nedeklarujete kód přímo pod funkcí def main(): jinak dojde k chybě odsazení.
Jak předat argumenty příkazového řádku Python Funkce main()
Funkce main() je přirozené místo pro zpracování vstupu, který uživatel předává na příkazovém řádku. Python ukládá tyto hodnoty do seznamu sys.argv, který poskytuje standardní modul sys. První položka, sys.argv[0], je název skriptu a každá další hodnota je argument zadaný uživatelem.
Následující příklad čte a vypisuje argumenty příkazového řádku z funkce main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Pokud soubor uložíte jako script.py a spustíte python script.py alfa beta, program vypíše název skriptu a seznam ['alpha', 'beta']. Protože hodnoty přicházejí uvnitř main(), logika zůstává organizovaná a snadno testovatelná.
Zde je několik praktických tipů pro práci s příkazovým řádkem:
- Zkrácený název skriptu: Pomocí sys.argv[1:] si můžete přečíst pouze argumenty, které uživatel zadal.
- Pro skutečné nástroje použijte argparse: Vestavěný modul argparse analyzuje příznaky, volby a text nápovědy mnohem bezpečněji než ruční čtení souboru sys.argv.
- Vrátit výstupní kód: Volání zabalte do sys.exit(main()), aby návratová hodnota main() reprezentovala stav ukončení procesu.
- Ověřte včas: Před spuštěním zbytku programu zkontrolujte počet a typ argumentů na začátku funkce main().
Tento vzor promění jednoduchý skript ve spolehlivý nástroj příkazového řádku a zároveň udržíping každý krok uvnitř jediné, testovatelné funkce main().
Python Funkce main() vs. jiné programovací jazyky
Vývojáři z jazyka C, C++nebo Java často očekávají povinnou funkci main(). Python funguje jinak, protože se jedná o interpretovaný jazyk, takže interpret jednoduše spouští soubor od horního řádku do dolního. Funkce main() v Python je tedy spíše konvencí než pravidlem.
- C, C++, C# a Java: Funkce main() je povinný vstupní bod. Běhové prostředí ji automaticky volá a v každém programu může být pouze jedna.
- Python: Není vyžadována žádná funkce main(). Spuštění začíná na prvním řádku souboru a def main() se spustí pouze tehdy, pokud ji váš kód volá.
- Strážce: Blok if __name__ == „__main__“ dává Python účel podobný kompilované funkci main() označením kódu, který by se měl spustit pouze tehdy, když je soubor hlavním programem.
Takže zatímco jiné jazyky vynucují vstupní bod main(), Python nechává volbu na vás a nabízí stejnou srozumitelnost prostřednictvím konvence namísto pravidla kompilátoru.




