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

Barbara Streisand
Libérer: 2024-10-27 04:31:29
original
858 Les gens l'ont consulté

 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!