"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 > Como acessar variáveis ​​não locais em Python 2.x?

Como acessar variáveis ​​não locais em Python 2.x?

Publicado em 2024-11-03
Navegar:529

How to Access Nonlocal Variables in Python 2.x?

Acessando variáveis ​​​​não locais em Python 2.x

Nas versões do Python 2.x, a palavra-chave "nonlocal" não está disponível, tornando-a desafiador implementar fechamentos que acessam variáveis ​​não locais. No entanto, existem técnicas que podem ser empregadas para lidar com tais cenários.

Acesso somente leitura a variáveis ​​não locais

Funções internas em Python 2.x podem ler e acessar variáveis ​​não locais. Isso significa que você pode fazer referência a variáveis ​​não locais dentro de funções internas, mas não pode reatribuir seus valores.

Solução alternativa usando um dicionário

Uma solução alternativa é usar um dicionário para armazenar variáveis ​​não locais. As funções internas podem então acessar essas variáveis ​​referenciando os elementos do dicionário. Isso garante que as variáveis ​​​​não locais sejam acessíveis às funções internas, respeitando a restrição somente leitura.

Código de exemplo

Aqui está um exemplo de como implementar um encerramento que acessa uma variável não local usando um dicionário:

def outer():
    d = {'y': 0}  # Dictionary to store the nonlocal variable

    def inner():
        d['y']  = 1  # Increment the 'y' value in the dictionary
        return d['y']  # Return the updated value

    return inner

f = outer()  # Outer function call returns the inner function
print(f(), f(), f())  # Prints 1 2 3

Neste exemplo, a função interna inner pode acessar a variável não local y armazenada no dicionário d. A função interna pode incrementar e retornar o valor de y, permitindo-nos simular o acesso a variáveis ​​não locais em Python 2.x.

Ao aproveitar esta técnica, você pode implementar efetivamente fechamentos que acessam variáveis ​​não locais em Python 2.x versões, proporcionando maior flexibilidade e controle sobre seu código.

Declaração de lançamento Este artigo foi reimpresso em: 1729557438 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
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