„Python“ pagrindinė funkcija & Metodo pavyzdys: supraskite __main

Kas yra pagrindinė „Python“ funkcija?

„Python“ pagrindinė funkcija yra bet kurios programos pradinis taškas. Paleidus programą, pitono vertėjas paleidžia kodą nuosekliai. Pagrindinė funkcija vykdoma tik tada, kai ji vykdoma kaip „Python“ programa. Ji nevykdys pagrindinės funkcijos, jei importuos kaip modulį.

Kas yra „def main“ („Python“) funkcija? Norėdami tai suprasti, apsvarstykite šį kodo pavyzdį

def main():print ("hello world!")print ("Guru99")

Čia mes gavome du spausdinimo vienetus - vienas yra apibrėžtas pagrindinėje funkcijoje „Sveikas pasaulis“, o kitas yra nepriklausomas, tai yra „Guru99“. Paleidus funkciją def main ():

  • Spausdina tik „Guru99“
  • o ne kodas „Sveikas pasaulis“.

Taip yra todėl, kad mes nedeklaravome iškvietimo funkcijos „if__name __ ==„ __main__ “.

Svarbu, kad apibrėžę pagrindinę funkciją, paskambintumėte kodu if__name __ == "__main__" ir tada paleistumėte kodą, tik tada gausite išvestį "labas pasaulis!" programavimo pulte. Apsvarstykite šį kodą

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")

Šiuo atveju atspausdintas „Guru99“.

Štai paaiškinimas,

  • Kai „Python“ vertėjas skaito šaltinio failą, jis vykdys visą jame rastą kodą.
  • Kai „Python“ paleidžia „šaltinio failą“ kaip pagrindinę programą, jis nustato, kad specialusis kintamasis (__name__) turėtų reikšmę („__main__“).
  • Kai vykdysite pagrindinę „python“ funkciją, jis perskaitys „if“ sakinį ir patikrins, ar __name__ yra lygus __main__.
  • „Python “ programoje „if__name __ ==„ __main__ “ leidžia paleisti„ Python “failus kaip daugkartinio naudojimo modulius arba atskiras programas.

Kintamasis __name__ ir „Python“ modulis

Norėdami suprasti kintamojo __name__ svarbą „Python“ pagrindinės funkcijos metode, apsvarstykite šį kodą:

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)

Dabar apsvarstykite, kodas importuojamas kaip modulis

import MainFunctionprint("done")

Čia yra kodo paaiškinimas:

Kaip ir C, „Python“ naudoja == palyginimui, o = priskyrimui. „Python“ vertėjas pagrindinę funkciją naudoja dviem būdais

tiesioginis bėgimas:

  • __pavadinimas __ = __ pagrindinis__
  • jei teiginys == Tiesa, ir scenarijus _main_ bus vykdomas

importuoti kaip modulį

  • __name __ = modulio failo vardas
  • jei teiginys == klaidingas, o scenarijus __main__ nebus vykdomas

Kai kodas bus vykdomas, jis patikrins modulio pavadinimą su „jei“. Šis mechanizmas užtikrina, kad pagrindinė funkcija vykdoma tik kaip tiesioginis vykdymas, o ne importuojant kaip modulį.

Aukščiau pateikti „Python 3“ kodai. Jei norite naudoti „Python 2“, apsvarstykite šį kodą

def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"

„Python 3“ nereikia naudoti if__name. Sekantis kodas taip pat veikia

def main():print("Hello World!")main()print("Guru99")

Pastaba: Įsitikinkite, kad apibrėžę pagrindinę funkciją, paliksite šiek tiek įtraukų ir nedeklaruosite kodo tiesiai po def main (): function, priešingu atveju jis duos įtraukos klaidą.

Įdomios straipsniai...