Um eine Variable basierend auf einer String-Eingabe auszuwählen, gibt es mehrere praktikable Ansätze.
Wörterbuch
Hierfür eignet sich oft ein gewöhnliches Wörterbuch Aufgabe:
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} get_ext['video'] # returns ['mp4', 'mkv']
Funktion
Wenn eine Funktion aus bestimmten Gründen erforderlich ist, können Sie sie der get-Methode des Wörterbuchs zuweisen:
get_ext = get_ext.get # Equivalent to get_ext = lambda key: get_ext.get(key) get_ext('video') # returns ['mp4', 'mkv']
Dies gibt standardmäßig „None“ für unbekannte Schlüssel zurück. Um stattdessen einen KeyError auszulösen, weisen Sie get_ext.__getitem__ zu:
get_ext = get_ext.__getitem__ # Equivalent to get_ext = lambda key: get_ext.__getitem__(key) get_ext('video') # returns ['mp4', 'mkv']
Benutzerdefinierter Standardwert
Sie können einen benutzerdefinierten Standardwert implementieren, indem Sie das Wörterbuch in a einschließen Funktion:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} return types.get(file_type, [])
Optimieren
Um zu vermeiden, dass das Wörterbuch bei jedem Funktionsaufruf neu erstellt wird, können Sie eine Klasse verwenden:
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()
This ermöglicht die einfache Änderung erkannter Dateitypen:
get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # returns ['bin', 'exe']
Das obige ist der detaillierte Inhalt vonWie kann ich Variablen in Python mithilfe einer String-Eingabe auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!