Python Põhifunktsioon ja meetod: def Main() mõistmine
⚡ Nutikas kokkuvõte
Python Funktsioon main tähistab alguspunkti, kust interpretaator programmi käivitama hakkab. Defineeritud funktsiooniga def main() ja paaristatud funktsiooniga if __name__ == “__main__” eraldab see korduvkasutatava mooduli koodi eraldiseisvast skripti täitmisest.

Mis on Python Peamine funktsioon?
. Python põhifunktsioon on iga programmi alguspunkt. Programmi käivitamisel Python interpreter käivitab koodi järjestikku. Main-funktsioon käivitatakse ainult siis, kui see käivitatakse kui Python programm. See ei käivita põhifunktsiooni, kui see imporditakse moodulina.
Mis on def main() funktsioon PythonSelle mõistmiseks vaatleme järgmist näidiskoodi, mis on osa tuumast Python programmeerimine põhitõed:
def main() Näide 1
def main():
print ("Hello World!")
print ("Guru99")
Siin on meil kaks prinditavat osa – üks on defineeritud põhifunktsioonis nimega „Hello World!“ ja teine on sõltumatu ehk „Guru99”. Funktsiooni def main() käivitamisel:
- Ainult "Guru99-tollised prindid
- ja mitte kood "Tere maailm!"
Põhjus on selles, et me ei kuulutanud üleskutset funktsioon "if__name__== "__main__".
On oluline, et pärast põhifunktsiooni määratlemist kutsuksite koodi välja if__name__== "__main__" ja seejärel käivitaksite koodi, alles siis saate väljundi "tere maailm!" programmeerimiskonsoolis. Mõelge järgmisele koodile
def main() Näide 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruSel juhul trükitakse 99.
Siin on selgitus,
- Kui Python tõlk loeb lähtefaili, käivitab see kogu selles leiduva koodi.
- Kui Python käivitab põhiprogrammina lähtefaili, määrab see erimuutujale (__name__) väärtuse (“__main__”).
- Kui käivitate pythonis põhifunktsiooni, loeb see lause "if" ja kontrollib, kas __nimi__ võrdub __main__-ga.
- In Python "if__name__== "__main__" võimaldab teil käivitada Python failid kas kui korduvkasutatavad moodulid või eraldiseisvad programmid.
Miks kasutada funktsiooni main()? Python?
Python ei sunni sind kirjutama main-funktsiooni, kuid kogenud arendajad kasutavad seda peaaegu igas mittetriviaalses skriptis. def main() muster toob faili korra ja muudab koodi taaskasutamise turvaliseks. Siin on peamised põhjused selle kasutamiseks:
- Selge sisenemispunkt: Funktsioon main() ütleb lugejale täpselt, kust programm algab, seega on loogikat lihtne jälgida.
- Korduvkasutatavad moodulid: Code valvab if __name__ == “__main__” töötab ainult otse käivitamisel, seega saavad teised failid teie funktsioone importida ilma kõrvalmõjudeta.
- Kohalik ulatus: Main() sees loodud muutujad jäävad lokaalseteks, mis väldib juhuslikke kokkupõrkeid globaalsete nimedega mujal moodulis.
- Lihtsam testimine: Loogika isoleerimine funktsioonis main() võimaldab testikomplektil seda otse kutsuda ja tulemust kontrollida.
- Jagatud kokkulepe: Funktsioon main() on laialdaselt tunnustatud signaal programmi sisenemispunkti kohta, mis parandab meeskondade hooldatavust.
Lühidalt, funktsioon main() on valikuline Python, kuid see hoiab suuremad programmid loetavate, testitavate ja importimiseks ohututena.
Muutuja __name__ ja Python moodulid
Et mõista muutuja __name__ tähtsust Python põhifunktsiooni meetodit, 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 MainFunction
print("done")
Siin on koodi selgitus: Nagu C, Python kasutab == võrdlemiseks, samas kui = määramiseks. Python tõlk kasutab põhifunktsiooni kahel viisil
otsejooks:
- __nimi__=__main__
- if lause == Tõene ja skriptis _main_käivitatakse
importida moodulina
- __name__= mooduli failinimi
- if lause == false ja __main__ skripti ei käivitata
Kui kood on käivitatud, kontrollib see mooduli nime "if". See mehhanism tagab, et põhifunktsiooni täidetakse ainult otsekäivitatuna, mitte moodulina impordituna.
Ülaltoodud näited on Python 3 koodi, kui soovite kasutada Python 2, palun kaaluge järgmist koodi
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, ei pea te kasutama if__name. Toimib ka järgmine kood
def main():
print("Hello World!")
main()
print("Guru99")
Märge: Veenduge, et pärast põhifunktsiooni määratlemist jätaksite mõne taane ja ei deklareeri koodi otse funktsiooni def main(): alla, vastasel juhul annab see taande vea.
Kuidas käsurea argumente edastada Python peamine() funktsioon
Funktsioon main() on loomulik koht käsureal kasutaja poolt edastatud sisendi haldamiseks. Python salvestab need väärtused sys.argv loendisse, mille pakub standardne sys moodul. Esimene element, sys.argv[0], on skripti nimi ja iga sellele järgnev väärtus on kasutaja esitatud argument.
Järgnev näide loeb ja prindib käsurea argumente funktsiooni main() seest:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Kui salvestate faili nimega script.py ja käivitate selle python script.py alfa beetaversioon, programm prindib skripti nime ja loendi ['alpha', 'beta']. Kuna väärtused saabuvad main() funktsiooni sisse, püsib loogika korrastatuna ja seda on lihtne testida.
Siin on mõned praktilised näpunäited käsurea sisendiga töötamiseks:
- Lõika skripti nimi välja: Ainult kasutaja sisestatud argumentide lugemiseks kasutage funktsiooni sys.argv[1:].
- Kasutage päris tööriistade jaoks argparse'i: Sisseehitatud moodul argparse parsib lippe, valikuid ja abiteksti palju turvalisemalt kui sys.argv käsitsi lugemine.
- Tagasta väljumiskood: Murra kutse kujule sys.exit(main()), nii et main() tagastusväärtuseks saab protsessi väljumisolek.
- Kinnitage varakult: Enne ülejäänud programmi käivitamist kontrollige main() alguses argumentide arvu ja tüüpi.
See muster muudab lihtsa skripti usaldusväärseks käsurea tööriistaks, samal ajal kui keeping iga samm ühe testitava main() funktsiooni sees.
Python main() funktsioon vs teised programmeerimiskeeled
C-st tulevad arendajad C++või Java eeldavad sageli kohustuslikku main() funktsiooni. Python töötab erinevalt, kuna see on interpreteeritav keel, seega käivitab interpreter faili lihtsalt ülemisest reast allapoole. Main() funktsioon Python on seega pigem konventsioon kui reegel.
- C, C++, C# ja Java: Funktsioon main() on kohustuslik sisenemispunkt. Käituskeskkond kutsub seda automaatselt ja programmi kohta saab neid olla ainult üks.
- Python: Main() funktsiooni pole vaja. Täitmine algab faili esimesest reast ja def main() käivitub ainult siis, kui teie kood seda kutsub.
- Valvur: Kui __name__ == “__main__” plokk annab Python sarnane eesmärk kompileeritud main() funktsiooniga, märkides koodi, mis peaks käivituma ainult siis, kui fail on põhiprogramm.
Seega, kuigi teised keeled sunnivad peale main() sisenemispunkti, Python jätab valiku teile, pakkudes sama selgust konventsiooni, mitte kompilaatori reegli kaudu.




