Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah Python pada Runtime?

Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah Python pada Runtime?

Susan Sarandon
Susan Sarandonasal
2024-12-21 14:02:10113semak imbas

How Can I Get a Python Variable's Name at Runtime?

Memintas Nama Pembolehubah dalam Python

Dalam Python, mengakses nama pembolehubah secara langsung bukanlah tugas yang mudah. Walau bagaimanapun, untuk senario tertentu, di mana mendapatkan nama pembolehubah adalah penting, pertimbangkan penyelesaian berikut.

Tipu Modul Pemeriksaan

Melalui modul periksa, anda boleh melintasi timbunan panggilan dan mengekstrak pembolehubah nama minat. Begini caranya:

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)

Contoh Penggunaan

Untuk menggambarkan fungsinya, katakan anda mempunyai pembolehubah bernama spam dengan nilai 42. Menggunakan fungsi varname(), anda boleh mendapatkan semula namanya:

if __name__ == '__main__':
  spam = 42
  print varname(spam)

Output

Output akan be:

spam

Nota Awas

Walaupun pendekatan ini menyediakan cara untuk mengakses nama pembolehubah, adalah penting untuk menggunakannya dengan bijak. Penamaan pembolehubah langsung secara amnya tidak digalakkan dalam amalan pengekodan Pythonic. Pertimbangkan penyelesaian alternatif, seperti menukar fail konfigurasi kepada kamus semasa pemulaan untuk mengelakkan keperluan untuk teknik ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah Python pada Runtime?. 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