"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 obter a funcionalidade de `compact()` e `extract()` do PHP em Python?

Como obter a funcionalidade de `compact()` e `extract()` do PHP em Python?

Publicado em 2024-11-06
Navegar:880

 How to Achieve the Functionality of PHP\'s `compact()` and `extract()` in Python?

Python Equivalentes às funções compact() e extract() do PHP

Em PHP, as funções compact() e extract() servem a propósitos práticos para criar hashtables e atualizar variáveis ​​locais, respectivamente. Python oferece funcionalidade semelhante, embora siga princípios distintos.

Implementação de compact() em Python

Embora não seja estritamente recomendado em Python, pode-se implementar um compact() -função semelhante à seguinte:

import inspect

def compact(*names):
    caller = inspect.stack()[1][0]
    vars = {}
    for n in names:
        if n in caller.f_locals:
            vars[n] = caller.f_locals[n]
        elif n in caller.f_globals:
            vars[n] = caller.f_globals[n]
    return vars

Esta função examina as variáveis ​​locais e globais do chamador para criar um dicionário com valores de variáveis ​​especificados.

Abordagem do Python para extrair funcionalidade

Anteriormente , foi possível implementar um equivalente em Python de extract(), mas esse método não é mais suportado. Isso reflete a preferência do Python pela atribuição explícita de variáveis ​​em vez de atualizar variáveis ​​locais dinamicamente.

Abordagens alternativas

Se a necessidade de funções do tipo compact() ou extract() persistir , considere se sua abordagem está alinhada com os princípios pitônicos de clareza e explicitação. Alternativas como acessar variáveis ​​diretamente ou usar estruturas de dados como dicionários podem ser mais apropriadas em Python.

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