Замикання
Свайпніть щоб показати меню
Замикання проти вкладених функцій
Вкладена функція — це будь-яка функція, яку визначено всередині іншої функції. Вкладені функції корисні для організації коду та обмеження області видимості допоміжних функцій. Однак не всі вкладені функції є замиканнями.
Замикання — це особливий тип вкладеної функції. Замикання — це вкладені функції, які "запам'ятовують" і можуть отримувати доступ до змінних із області видимості зовнішньої функції, навіть після завершення виконання зовнішньої функції. Це означає, що замикання можуть зберігати стан між кількома викликами.
Основні моменти:
- Усі замикання є вкладеними функціями;
- Не всі вкладені функції є замиканнями;
- Вкладена функція стає замиканням лише тоді, коли вона використовує змінні із зовнішньої області видимості, і ці змінні залишаються доступними після повернення зовнішньої функції.
Це розрізнення важливе для розуміння того, як Python керує областю видимості змінних і як можна використовувати замикання для інкапсуляції стану та поведінки разом.
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())
Коли ви викликаєте make_greeter("Alice"), Python створює нову функцію greet, яка запам'ятовує значення змінної name як "Alice". Навіть після завершення виконання make_greeter, повернена функція greet все ще має доступ до змінної name зі своєї початкової області видимості. Саме тому виклик greeter() виводить Hello, Alice!, а виклик another_greeter() — Hello, Bob!. Кожне замикання зберігає власну копію необхідних йому змінних.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Замикання
Замикання проти вкладених функцій
Вкладена функція — це будь-яка функція, яку визначено всередині іншої функції. Вкладені функції корисні для організації коду та обмеження області видимості допоміжних функцій. Однак не всі вкладені функції є замиканнями.
Замикання — це особливий тип вкладеної функції. Замикання — це вкладені функції, які "запам'ятовують" і можуть отримувати доступ до змінних із області видимості зовнішньої функції, навіть після завершення виконання зовнішньої функції. Це означає, що замикання можуть зберігати стан між кількома викликами.
Основні моменти:
- Усі замикання є вкладеними функціями;
- Не всі вкладені функції є замиканнями;
- Вкладена функція стає замиканням лише тоді, коли вона використовує змінні із зовнішньої області видимості, і ці змінні залишаються доступними після повернення зовнішньої функції.
Це розрізнення важливе для розуміння того, як Python керує областю видимості змінних і як можна використовувати замикання для інкапсуляції стану та поведінки разом.
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())
Коли ви викликаєте make_greeter("Alice"), Python створює нову функцію greet, яка запам'ятовує значення змінної name як "Alice". Навіть після завершення виконання make_greeter, повернена функція greet все ще має доступ до змінної name зі своєї початкової області видимості. Саме тому виклик greeter() виводить Hello, Alice!, а виклик another_greeter() — Hello, Bob!. Кожне замикання зберігає власну копію необхідних йому змінних.
Дякуємо за ваш відгук!