"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é a diferença entre funções aninhadas e fechamentos em Python

Qual é a diferença entre funções aninhadas e fechamentos em Python

Postado em 2025-05-03
Navegar:950

What\'s the Difference Between Nested Functions and Closures in Python?

funções aninhadas vs. fechamentos em python

enquanto as funções aninhadas em python se assemelham superficialmente, e são fundamentalmente distintas devido a uma diferença importante:

Não closures

funções aninhadas no python não são consideradas fechamentos porque não atendem ao seguinte requisito:

Eles não acessam variáveis ​​que são locais para scopes quando executados fora do scope. make_printer (msg): Def Printer (): Imprimir (msg) Return Printer
  • aqui, a função da impressora é uma função aninhada dentro de make_printer. É um fechamento porque faz referência à variável local msg após o retorno do Make_Printer. Esta referência é mantida mesmo após a saída do escopo anexador. Impressora def (msg = msg): Imprimir (msg) Retorne impressora
Neste caso, a variável msg está ligada ao valor padrão quando a impressora é criada e não faz referência a nenhuma variável fora de seu próprio escopo. Portanto, não é um fechamento. Os fechamentos podem ser úteis para reter o estado de escopos de esconderijo, enquanto as funções aninhadas não fechadas simplesmente encapsulam a funcionalidade dentro de um escopo lexical.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3