Zugriff auf Variablenwerte über den String-Namen
In vielen Szenarien kann die stringbasierte Variablensuche mithilfe von Wörterbüchern erreicht werden. So geht's:
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']}
Jetzt können Sie die gewünschte Liste durch die String-Eingabe abrufen:
get_ext['audio'] # ['mp3', 'wav']
Wenn Sie lieber eine Funktion verwenden möchten, können Sie die get-Methode des Wörterbuchs zuweisen oder seine Elementabrufmethode (__getitem__) dazu:
get_ext = get_ext.get get_ext('video') # ['mp4', 'mkv']
Die Zuweisung zu get_ext.get bietet ein Standardverhalten der Rückgabe Keine für unbekannte Schlüssel. Weisen Sie für einen KeyError stattdessen get_ext.__getitem__ zu.
Alternativ können Sie das Wörterbuch in eine Funktion einschließen, um einen benutzerdefinierten Standardwert bereitzustellen:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} return types.get(file_type, [])
Um das Setup zu optimieren, können Sie Folgendes tun: Definieren Sie eine Klasse mit einer call-Methode, um die Suche abzuwickeln:
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, [])
This Der Ansatz verbessert die Effizienz, indem das Typenwörterbuch nur einmal erstellt wird, und ermöglicht dynamische Aktualisierungen:
get_ext = get_ext() get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # ['bin', 'exe']
Das obige ist der detaillierte Inhalt vonWie kann ich in Python über ihre String-Namen auf Variablenwerte zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!