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!