Co je hlavní funkce Pythonu?
Hlavní funkce Pythonu je výchozím bodem každého programu. Když je program spuštěn, překladač pythonu spustí kód postupně. Hlavní funkce se provádí, pouze pokud je spuštěna jako program v Pythonu. Nebude spuštěna hlavní funkce, pokud bude importována jako modul.
Jaká je funkce def main () v Pythonu? Abychom tomu porozuměli, zvažte následující příklad kódu
def main():print ("hello world!")print ("Guru99")
Zde jsme dostali dva kusy tisku - jeden je definován v rámci hlavní funkce, kterou je „Hello World“, a druhý je nezávislý, což je „Guru99“. Když spustíte funkci def main ():
- Vytiskne se pouze „Guru99“
- a ne kód „Hello World“.
Je to proto, že jsme nedeklarovali funkci volání "if__name __ ==" __main__ ".
Je důležité, že po definování hlavní funkce zavoláte kód if__name __ == "__main__" a poté kód spustíte, až poté získáte výstup "ahoj svět!" v programovací konzole. Zvažte následující kód
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 je v tomto případě vytištěn.
Zde je vysvětlení,
- Když interpret Pythonu načte zdrojový soubor, provede veškerý kód v něm nalezený.
- Když Python spustí jako hlavní program „zdrojový soubor“, nastaví speciální proměnnou (__name__) tak, aby měla hodnotu („__main__“).
- Když spustíte hlavní funkci v pythonu, přečte příkaz „if“ a zkontroluje, zda se __name__ rovná __main__.
- V jazyce Python umožňuje „if__name __ ==„ __main__ “ spouštět soubory Pythonu buď jako opakovaně použitelné moduly, nebo jako samostatné programy.
Proměnná __name__ a modul Python
Abychom pochopili důležitost proměnné __name__ v metodě hlavní funkce Pythonu, 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, kód se importuje jako modul
import MainFunctionprint("done")
Zde je vysvětlení kódu:
Stejně jako C, Python používá == pro srovnání, zatímco = pro přiřazení. Interpret Pythonu používá hlavní funkci dvěma způsoby
přímý běh:
- __name __ = __ main__
- if statement == True, a bude spuštěn skript v _main_
importovat jako modul
- __name __ = název souboru modulu
- if statement == false a skript v __main__ nebude proveden
Po spuštění kódu zkontroluje název modulu pomocí „if“. Tento mechanismus zajišťuje, že hlavní funkce se provede pouze jako přímý běh, ne při importu jako modul.
Výše uvedené příklady jsou kódy Pythonu 3, pokud chcete používat Python 2, zvažte následující kód
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
V Pythonu 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í hlavní funkce necháte nějaké odsazení a nedeklarujete kód přímo pod def main (): funkce jinak, způsobí chybu odsazení.