要根據字串輸入選擇變量,有幾種可行的方法。
字典
普通字典通常適合於此任務:
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中文網其他相關文章!