Clarify which variables appear in function.__closure__
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 35.9k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
While working with nested functions, I observed that function.__closure__ only
contains cells for variables that are actually referenced inside the inner
function body. Variables defined in the enclosing scope but not used in the
inner function do not appear in co_freevars and therefore do not appear in
function.__closure__.
Example:
def outer():
x = 1
y = 2
z = 3
def inner():
return x
return inner
inner.__closure__ # contains only x
This behavior matches the execution model (“free variables”), but the current
documentation only states that __closure__ contains bindings for names listed
in co_freevars. It does not explicitly state that only referenced names are
included.
This PR proposes adding a brief clarification to make this behavior explicit.
Before continuing with the pull request, I would like confirmation from the
documentation team whether this detail should be included in the data model
section.
Linked PRs
- gh-142086
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pela documentação do modelo de dados do Python e revise a descrição existente de function.closure juntamente com co_freevars. Esclareça que apenas os nomes referenciados pela função interna aparecem e confirme a redação com a equipe de documentação antes de prosseguir; considera-se concluído quando o comportamento estiver explícito na seção relevante.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- documentation
- Tipo de issue
- Documentação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100