Sobes.tech
Junior

Kas on võimalik deklareerida funktsioon teise funktsiooni sees ja kus see on nähtav?

sobes.tech AI

Vastus AI-lt

Jah, see on võimalik. Sisefunktsioon (või sisseehitatud funktsioon) on nähtav ja kättesaadav ainult väljaspool seda välisfunktsiooni, milles see on määratletud. Selle nähtavusala on piiratud välisfunktsiooni keha piiridega.

def välisfunktsioon():
    def sisemine_funktsioon(): # Sisefunktsioon
        print("See on sisemine funktsioon")

    sisemine_funktsioon() # Sisemise funktsiooni kutsumine väljafunktsiooni sees

välisfunktsioon() # Välisfunktsiooni kutsumine, mis viib sisemise funktsiooni täitmiseni
# sisemine_funktsioon() # See rida põhjustab NameError vea, kuna sisemine_funktsioon ei ole nähtav väljaspool välisfunktsiooni