]
вложенные функции против закрытия в Python
, в то время как вложенные функции в Python поверхностно напоминают закрытия, они в основном отличаются от ключевого различия:
вложенные функции в Python не считаются закрытиями, потому что они не соответствуют следующему требованию:
они не получают доступа к переменным, которые являются локальными, чтобы приостановить пример при выполнении за пределами приложения. Make_printer (MSG): def printer (): Печать (MSG) return Printer
Определение закрытия
def make_printer(msg): def printer(): print(msg) return printerзакрытие - это функция, которая поддерживает ссылку на приоритет, позволяя ему получить доступ к переменным, которая не определена в его собственной области. Эта ссылка сохраняется даже после того, как прицел в округе был выведен. DEF PRINTER (MSG = MSG): Печать (MSG) return Printer
В данном случае переменная MSG связана со значением по умолчанию при создании принтера, и он не ссылается на какие -либо переменные вне ее собственной области. Следовательно, это не закрытие.
Заключение
вложенные функции в питоне, которые не соответствуют определению закрытия, обычно называют «вложенными функциями», чтобы отличить их от подлинных закрытий. Закрытие может быть полезным для сохранения состояния вложений областей, в то время как вложенные функции, не являющиеся неживыми, просто инкапсулируют функциональность в лексическую область.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3