Maison  >  Article  >  développement back-end  >  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 ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 04:31:29931parcourir

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

Équivalents Python 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 comme suit :

<code class="python">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</code>

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

Approche de Python pour extraire les fonctionnalités

Auparavant, 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn