Mencetak Nama Pembolehubah dalam Python: Mendedahkan Nama Di Sebalik Nilai
Dalam alam pengaturcaraan Python, mengakses nama pembolehubah boleh menjadi tugas yang membingungkan. Pertimbangkan senario di mana anda memiliki pembolehubah bernama 'pilihan,' entiti berangka yang diberikan nilai 2. Menariknya, anda cuba mendapatkan semula nama pembolehubah ini, serupa dengan ungkapan 'namestr(choice),' yang akan menghasilkan 'pilihan ' sebagai outputnya.
Gerakan usaha ini berpunca daripada kegunaannya dalam membina kamus. Walau bagaimanapun, laluan ke matlamat ini telah mengelak anda, membuatkan anda bingung.
Menyelidiki Penyelesaian
Jangan takut, kerana penyelesaian menanti pertanyaan anda. Python menganugerahkan modul inspect kepada kami, alat berkuasa yang membolehkan kami menyelidiki cara dalaman kod kami. Dengan menggunakan modul ini, kami boleh mengekstrak nama pembolehubah kami melalui pendekatan berikut:
import inspect, re def varname(p): for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]: m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line) if m: return m.group(1) if __name__ == '__main__': spam = 42 print varname(spam)
Fungsi ini, 'varname,' berulang ke atas kod dalam bingkai semasa dan menangkap baris yang mengandungi panggilan ke ' varname.' Menggunakan regex, ia mengekstrak nama pembolehubah yang telah diluluskan.
Nota Awas
Walaupun kaedah ini memberikan keupayaan untuk mencapai nama pembolehubah, ia mesti didekati dengan berhati-hati. Pemeriksaan kod boleh menjadi pedang bermata dua, dan anda dinasihatkan untuk meneroka pendekatan alternatif sebelum menggunakan penyelesaian rumit ini.
Meneroka Pilihan
Pertimbangkan untuk menyemak semula tugas di tangan dan mencari penyelesaian yang lebih mudah yang selaras dengan asas Python. Maklumat yang anda berikan menunjukkan bahawa membaca fail konfigurasi dan membina kamus daripada kandungannya mungkin memberikan penyelesaian yang lebih elegan dan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!