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
Libérer: 2024-12-11 11:54:11
original
771 Les gens l'ont consulté

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

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

get_ext['audio']  # ['mp3', 'wav']
Copier après la connexion

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

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, [])
Copier après la connexion

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, [])
Copier après la connexion

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

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