Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memilih Pembolehubah dalam Python Menggunakan Input Rentetan?

Bagaimanakah Saya Boleh Memilih Pembolehubah dalam Python Menggunakan Input Rentetan?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 01:17:09938semak imbas

How Can I Select Variables in Python Using a String Input?

Memilih Pembolehubah mengikut Nama Rentetan

Untuk memilih pembolehubah berdasarkan input rentetan, terdapat beberapa pendekatan yang berdaya maju.

Kamus

Kamus biasa selalunya sesuai untuk ini tugas:

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

get_ext['video']  # returns ['mp4', 'mkv']

Fungsi

Jika fungsi diperlukan atas sebab tertentu, anda boleh menetapkan kepada kaedah get kamus:

get_ext = get_ext.get  # Equivalent to get_ext = lambda key: get_ext.get(key)
get_ext('video')  # returns ['mp4', 'mkv']

Ini akan mengembalikan Tiada untuk kunci yang tidak diketahui secara lalai. Untuk menaikkan KeyError sebaliknya, tetapkan kepada get_ext.__getitem__:

get_ext = get_ext.__getitem__  # Equivalent to get_ext = lambda key: get_ext.__getitem__(key)
get_ext('video')  # returns ['mp4', 'mkv']

Nilai Lalai Tersuai

Anda boleh melaksanakan nilai lalai tersuai dengan membungkus kamus dalam fungsi:

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

    return types.get(file_type, [])

Mengoptimumkan

Untuk mengelak daripada mencipta semula kamus pada setiap panggilan fungsi, anda boleh menggunakan kelas:

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()

Ini membolehkan pengubahsuaian mudah jenis fail yang diiktiraf:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Pembolehubah dalam Python Menggunakan Input Rentetan?. 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