Mis on Pythoni põhifunktsioon?
Pythoni põhifunktsioon on iga programmi lähtepunkt. Programmi käivitamisel käivitab pythoni tõlk koodi järjestikku. Põhifunktsioon täidetakse ainult siis, kui seda käivitatakse Pythoni programmina. See ei käivita põhifunktsiooni, kui see imporditakse moodulina.
Mis on Pythoni funktsioon def main ()? Selle mõistmiseks kaaluge järgmist näidiskoodi
def main():print ("hello world!")print ("Guru99")
Siit saime kaks prinditükki - üks on määratletud põhifunktsioonis, mis on "Tere maailm", ja teine on sõltumatu, see on "Guru99". Funktsiooni def main () käivitamisel:
- Välja prindib ainult "Guru99"
- ja mitte kood "Tere maailm".
Selle põhjuseks on see, et me ei deklareerinud kõnefunktsiooni "if__name __ ==" __main__ ".
On oluline, et pärast põhifunktsiooni määratlemist helistaksite koodiga if__name __ == "__main__" ja käivitaksite koodi, alles siis saate väljundi "tere maailm!" programmeerimiskonsoolis. Mõelge järgmisele koodile
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Sellisel juhul on trükitud Guru99.
Siin on selgitus,
- Kui Pythoni tõlk loeb lähtefaili, käivitab ta kogu selles leiduva koodi.
- Kui Python käivitab põhiprogrammina "lähtefaili", määrab see erimuutujale (__name__) väärtuse ("__main__").
- Kui käivitate põhifunktsiooni pythonis, loeb see seejärel lause "kui" ja kontrollib, kas __name__ võrdub __main__-ga.
- Pythonis lubab "if__name __ ==" __main__ " käivitada Pythoni faile kas korduvkasutatavate moodulite või eraldiseisvate programmidena.
Muutuja __name__ ja Pythoni moodul
Muutuja __name__ olulisuse mõistmiseks Pythoni põhifunktsioonimeetodis kaaluge järgmist koodi:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Mõelge nüüd, kood imporditakse moodulina
import MainFunctionprint("done")
Siin on koodi selgitus:
Nagu C, kasutab Python võrdluseks ==, omistamiseks = =. Pythoni tõlk kasutab põhifunktsiooni kahel viisil
otsesõit:
- __nimi __ = __ peamine__
- if lause == Tõsi ja _main_ skript käivitatakse
import moodulina
- __nimi __ = mooduli failinimi
- if lause == false, ja __main__-i skripti ei käivitata
Kui kood on täidetud, kontrollib see mooduli nime "if" abil. See mehhanism tagab, et põhifunktsioon täidetakse ainult otsese käivitamisena, mitte moodulina importimisel.
Ülaltoodud näited on Python 3 koodid. Kui soovite kasutada Python 2, kaaluge palun järgmist koodi
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
Python 3-s ei pea te kasutama if__name. Järgmine kood töötab ka
def main():print("Hello World!")main()print("Guru99")
Märkus. Veenduge, et pärast põhifunktsiooni määratlemist jätaksite mõne taande ja ei deklareeriks koodi otse def main (): function all, vastasel juhul annab see taandevea.