Portál AbcLinuxu, 4. května 2025 15:22
if __name__ == '__main__' :
Řešení dotazu:
každej pythoní skript má jakoby proměnou __name__ a když třeba jako pustíš skript python3 jakubuv_skript.py tak v tom skriptu má ta speciální proměná hodnotu "__main__". pokud ale máš třeba ještě nějakej další skript třeba druhy_skript.py a ten je jakoby importovanej z toho skriptu jakubuv_skrip.py tak v něm už ta proměná nemá hodnotu "__main__" ale "druhy_skript". se to jako hodí když by ten skriptík druhy_skript.py nesloužil jenom k importování jakoby další modul pro jinej skriptík ale byl by sám osobě spustitelnej a tou proměnou __name__ de rozlišit jestli byl puštěnej von sám nebo právě z importu :O :O ;D
když poběží samostatně tak __name__=="__main__"
když poběží z importu tak __name__=="druhy_skript"
jestli to chceme jako líp pochopit tak si to jako musíme vyzkoušet ;D uděláme soubor jakubuv_skript.py s obsahem
print("se menuju: "+__name__) import druhy_skript
a druhej skriptík ve stejný složce s názvem druhy_skript.py s obsahem
print("teď se jako volá print z druhýho skriptu a tam je hodnota: "+__name__)
a teďko když zavoláme příkaz python3 jakubuv_skript.py tak nám to jako vypiše
se menuju: __main__ teď se jako volá print z druhýho skriptu a tam je hodnota: druhy_skript
ale když pustíme samotnej skriptík příkazem python3 druhy_skript.py ta to vypiše
teď se jako volá print z druhýho skriptu a tam je hodnota: __main__
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.