Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengakses Nilai Pembolehubah Menggunakan Nama Rentetan mereka dalam Python?

Bagaimanakah Saya Boleh Mengakses Nilai Pembolehubah Menggunakan Nama Rentetan mereka dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 11:54:11751semak imbas

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

Mengakses Nilai Pembolehubah mengikut Nama Rentetan

Untuk banyak senario, carian pembolehubah berasaskan rentetan boleh dicapai menggunakan kamus. Begini caranya:

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

Sekarang, anda boleh mendapatkan semula senarai yang diingini dengan input rentetan:

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

Jika anda lebih suka menggunakan fungsi, anda boleh menetapkan kaedah get kamus atau kaedah pengambilan itemnya (__getitem__) kepadanya:

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

Menetapkan kepada get_ext.get menyediakan lalai tingkah laku mengembalikan Tiada untuk kunci yang tidak diketahui. Sebaliknya, untuk KeyError, tetapkan kepada get_ext.__getitem__.

Sebagai alternatif, anda boleh membungkus kamus di dalam fungsi untuk memberikan nilai lalai tersuai:

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

Untuk mengoptimumkan persediaan, anda boleh tentukan kelas dengan kaedah panggilan untuk mengendalikan carian:

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, [])

Pendekatan ini meningkatkan kecekapan dengan mencipta kamus jenis sekali sahaja dan membolehkan kemas kini dinamik:

get_ext = get_ext()
get_ext.types['binary'] = ['bin', 'exe']
get_ext('binary')  # ['bin', 'exe']

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Nilai Pembolehubah Menggunakan Nama Rentetan mereka dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn