Sobes.tech
Junior

Ar galima deklaruoti funkciją kitoje funkcijoje ir kur ji bus matoma?

sobes.tech AI

Atsakymas iš AI

Taip, tai įmanoma. Vidinė funkcija (arba įdėta funkcija) yra matoma ir prieinama tik viduje išorinės funkcijos, kurioje ji apibrėžta. Jos matomumo sritis yra apribota išorinės funkcijos kūnu.

def išorinė_funkcija():
    def vidinė_funkcija(): # Vidinė funkcija
        print("Tai yra vidinė funkcija")

    vidinė_funkcija() # Išorinės funkcijos viduje iškviesta vidinė funkcija

išorinė_funkcija() # Išorinės funkcijos iškvietimas, kuris sukelia vidinės funkcijos vykdymą
# vidinė_funkcija() # Ši eilutė sukels NameError klaidą, nes vidinė_funkcija nėra matoma už išorinės funkcijos ribų