Maison >développement back-end >Tutoriel Python >Comment puis-je accéder aux valeurs de variables en utilisant leurs noms de chaîne en Python ?

Comment puis-je accéder aux valeurs de variables en utilisant leurs noms de chaîne en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-11 11:54:11754parcourir

How Can I Access Variable Values Using Their String Names in Python?

Accès aux valeurs de variable par nom de chaîne

Pour de nombreux scénarios, la recherche de variable basée sur une chaîne peut être réalisée à l'aide de dictionnaires. Voici comment :

get_ext = {'text': ['txt', 'doc'],
           'audio': ['mp3', 'wav'],
           'video': ['mp4', 'mkv']}

Maintenant, vous pouvez récupérer la liste souhaitée par la saisie de chaîne :

get_ext['audio']  # ['mp3', 'wav']

Si vous préférez utiliser une fonction, vous pouvez attribuer la méthode get du dictionnaire ou sa méthode de récupération d'élément (__getitem__) :

get_ext = get_ext.get
get_ext('video')  # ['mp4', 'mkv']

L'attribution à get_ext.get fournit un comportement par défaut de retour Aucun pour les clés inconnues. Pour une KeyError, attribuez-la à get_ext.__getitem__.

Vous pouvez également envelopper le dictionnaire dans une fonction pour fournir une valeur par défaut personnalisée :

def get_ext(file_type):
    types = {'text': ['txt', 'doc'],
             'audio': ['mp3', 'wav'],
             'video': ['mp4', 'mkv']}
    return types.get(file_type, [])

Pour optimiser la configuration, vous pouvez définir une classe avec une méthode call pour gérer le recherche :

class get_ext(object):
    def __init__(self):
        self.types = {'text': ['txt', 'doc'],
                      'audio': ['mp3', 'wav'],
                      'video': ['mp4', 'mkv']}
    def __call__(self, file_type):
        return self.types.get(file_type, [])

Cette approche améliore l'efficacité en créant le dictionnaire des types une seule fois et permet des mises à jour dynamiques :

get_ext = get_ext()
get_ext.types['binary'] = ['bin', 'exe']
get_ext('binary')  # ['bin', 'exe']

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