要根据字符串输入选择变量,有几种可行的方法。
字典
普通字典通常适合于此任务:
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} get_ext['video'] # returns ['mp4', 'mkv']
函数
如果由于特定原因需要函数,可以分配给字典的get方法:
get_ext = get_ext.get # Equivalent to get_ext = lambda key: get_ext.get(key) get_ext('video') # returns ['mp4', 'mkv']
默认情况下,未知键将返回 None 。要引发 KeyError,请分配给 get_ext.__getitem__:
get_ext = get_ext.__getitem__ # Equivalent to get_ext = lambda key: get_ext.__getitem__(key) get_ext('video') # returns ['mp4', 'mkv']
自定义默认值
您可以通过将字典包装在函数:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} return types.get(file_type, [])
优化
为了避免在每次函数调用时重新创建字典,您可以使用类:
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.types['binary'] = ['bin', 'exe'] get_ext('binary') # returns ['bin', 'exe']
以上是如何使用字符串输入在 Python 中选择变量?的详细内容。更多信息请关注PHP中文网其他相关文章!