Sobes.tech
Junior

Vai ir iespējams deklarēt funkciju iekšā citas funkcijas un kur tā būs redzama?

sobes.tech AI

Atbilde no AI

Jā, tas ir iespējams. Iekšējā funkcija (vai iekļautā funkcija) ir redzama un pieejama tikai ārējās funkcijas ietvaros, kurā tā ir definēta. Tās redzamības lauks ir ierobežots ar ārējās funkcijas ķermeni.

def ārējā_funkcija():
    def iekšējā_funkcija(): # Iekšējā funkcija
        print("Šī ir iekšējā funkcija")

    iekšējā_funkcija() # Izsaukums iekšējai funkcijai ārējās funkcijas ietvaros

ārējā_funkcija() # Izsaukums ārējai funkcijai, kas noved pie iekšējās funkcijas izpildes
# iekšējā_funkcija() # Šī rinda izraisīs NameError kļūdu, jo iekšējā_funkcija nav redzama ārpus ārējās funkcijas