Slutna Funktioner
Svep för att visa menyn
Slutna funktioner vs. nästlade funktioner
En nästlad funktion är en funktion som definieras inuti en annan funktion. Nästlade funktioner används för att organisera kod och begränsa räckvidden för hjälpfunktioner. Dock är inte alla nästlade funktioner slutna funktioner.
En sluten funktion är en speciell typ av nästlad funktion. Slutna funktioner är nästlade funktioner som "kommer ihåg" och kan komma åt variabler från den omgivande funktionens räckvidd, även efter att den yttre funktionen har avslutats. Detta innebär att slutna funktioner kan behålla tillstånd över flera anrop.
Viktiga punkter:
- Alla slutna funktioner är nästlade funktioner;
- Inte alla nästlade funktioner är slutna funktioner;
- En nästlad funktion blir en sluten funktion endast om den använder variabler från den yttre funktionens räckvidd och dessa variabler fortfarande är tillgängliga efter att den yttre funktionen har returnerat.
Denna skillnad är viktig för att förstå hur Python hanterar variabelräckvidd och hur slutna funktioner kan användas för att kapsla in tillstånd och beteende tillsammans.
12345678910def make_greeter(name): def greet(): return f"Hello, {name}!" return greet greeter = make_greeter("Alice") print(greeter()) another_greeter = make_greeter("Bob") print(another_greeter())
När du anropar make_greeter("Alice") skapar Python en ny greet-funktion som kommer ihåg värdet på name som "Alice". Även om make_greeter har avslutats har den returnerade greet-funktionen fortfarande tillgång till variabeln name från sitt ursprungliga omfång. Det är därför ett anrop till greeter() skriver ut Hello, Alice!, och ett anrop till another_greeter() skriver ut Hello, Bob!. Varje sluten funktion behåller sin egen kopia av de variabler den behöver.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal