首頁 >後端開發 >Python教學 >如何在 Python 中使用字串名稱存取變數值?

如何在 Python 中使用字串名稱存取變數值?

Patricia Arquette
Patricia Arquette原創
2024-12-11 11:54:11751瀏覽

How Can I Access Variable Values Using Their String Names in Python?

透過字串名稱存取變數值

對於許多場景,基於字串的變數查找可以使用字典來實現。具體方法如下:

get_ext = {'text': ['txt', 'doc'],
           'audio': ['mp3', 'wav'],
           'video': ['mp4', 'mkv']}

現在,您可以透過字串輸入檢索所需的清單:

get_ext['audio']  # ['mp3', 'wav']

如果您喜歡使用函數,您可以指定字典的get 方法或其專案取得方法(__getitem__):

get_ext = get_ext.get
get_ext('video')  # ['mp4', 'mkv']

指派給get_ext.get 提供預設值對於未知鍵傳回None的行為。對於 KeyError,請指派給 get_ext.__getitem__。

或者,您可以將字典包裝在函數中以提供自訂預設值:

def get_ext(file_type):
    types = {'text': ['txt', 'doc'],
             'audio': ['mp3', 'wav'],
             'video': ['mp4', 'mkv']}
    return types.get(file_type, [])

要最佳化設置,您可以定義一個帶有 call方法的類別來處理查找:

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')  # ['bin', 'exe']

以上是如何在 Python 中使用字串名稱存取變數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn