"Late-binding" isn't the issue with closures on a loop

Aberta
#1,030 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Documentação
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
lua, python
Domínio
documentation

Direção de pesquisa

Localize a passagem do guia que explica closures em um loop e compare sua redação com o exemplo de Lua vinculado e o exemplo de função aninhada na issue. Considera-se concluído quando a explicação distingue late binding de escopo de bloco e descreve com precisão o comportamento do Python.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Lua also has late-binding closures, as can be seen here: https://repl.it/repls/HotpinkEagerQuery (the first one intentionally misused to highlight the difference between block scope and function scope)

It just also has block scope. That's the thing python doesn't have, thus causing the confusion.

Block scope is better emulated with nested functions, such as:

for i in range(5):
  def block_scope_emulation(i):
    def thing(x):
      return x*i
  block_scope_emulation(i)
Linguagem predominante
Batchfile
Estrelas
29.8k
Forks
5.9k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de realpython/python-guide

Todas as issues de realpython/python-guide

Issues semelhantes

Mais issues de Documentation

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.