Accès aux variables par nom de chaîne
Problème :
Vous désirez une fonction qui renvoie un liste prédéfinie basée sur une entrée de chaîne. Par exemple, étant donné une chaîne « audio », la fonction doit afficher la liste ['mp3', 'wav'].
Solution la plus simple avec un dictionnaire :
Un dictionnaire standard peut répondre à cette exigence sans effort.
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] } get_ext['video'] # Returns ['mp4', 'mkv']
Utilisation Fonctions :
Pour des applications plus avancées, l'utilisation de fonctions peut être préférée.
Attribution de la méthode Get d'un dictionnaire :
get_ext = get_ext.get get_ext('video') # Returns ['mp4', 'mkv']
Emballer un dictionnaire dans un Fonction :
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] } return types.get(file_type, [])
Création d'une classe personnalisée pour l'extensibilité :
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, []) get_ext = get_ext() get_ext('audio') # Returns ['mp3', 'wav']
Cela vous permet de modifier les types de fichiers de manière dynamique.
get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # Returns ['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!