"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir les fonctionnalités de « compact() » et « extract() » de PHP en Python ?

Comment obtenir les fonctionnalités de « compact() » et « extract() » de PHP en Python ?

Publié le 2024-11-06
Parcourir:523

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

Python Équivalents aux fonctions compact() et extract() de PHP

En PHP, les fonctions compact() et extract() servent à des fins pratiques pour créer des tables de hachage et mettre à jour les variables locales, respectivement. Python offre des fonctionnalités similaires, bien qu'il adhère à des principes distincts.

Implémentation Python de compact()

Bien que cela ne soit pas strictement recommandé en Python, on peut implémenter un compact() -like fonction comme suit :

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

Cette fonction introspecte les variables locales et globales de l'appelant pour créer un dictionnaire avec les valeurs de variables spécifiées.

Approche de Python pour extraire les fonctionnalités

Précédemment , il était possible d'implémenter un équivalent Python de extract(), mais cette méthode n'est plus supportée. Cela reflète la préférence de Python pour l'affectation explicite de variables au lieu de la mise à jour dynamique des variables locales.

Approches alternatives

Si le besoin de fonctions de type compact() ou extract() persiste , déterminez si votre approche s'aligne sur les principes pythoniques de clarté et d'explicitation. Des alternatives telles que l'accès direct aux variables ou l'utilisation de structures de données telles que des dictionnaires peuvent être plus appropriées en Python.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3