Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menentukan Nama Pembolehubah Python Secara Pengaturcaraan?

Bagaimanakah Saya Boleh Menentukan Nama Pembolehubah Python Secara Pengaturcaraan?

Susan Sarandon
Lepaskan: 2024-11-27 16:59:10
asal
860 orang telah melayarinya

How Can I Determine the Name of a Python Variable Programmatically?

Menentukan Nama Pembolehubah dalam Python

Apabila bekerja dengan pembolehubah dalam Python, kadangkala perlu untuk mengakses nama mereka. Walaupun Python tidak menyediakan fungsi langsung untuk mendapatkan nama pembolehubah, satu pendekatan melibatkan introspeksi.

Memeriksa bingkai tindanan semasa menggunakan inspect.getframeinfo(inspect.currentframe().f_back) menyediakan akses kepada baris kod sumber. Dalam setiap baris, ungkapan biasa boleh digunakan untuk mencari panggilan ke fungsi yang mengambil pembolehubah sebagai hujah. Nama fungsi, yang mungkin varname, boleh digunakan untuk mengenal pasti baris yang mentakrifkan pembolehubah. Dengan mengekstrak nama pembolehubah daripada baris itu menggunakan ungkapan biasa, hasil yang diingini diperoleh.

Berikut ialah contoh pelaksanaan sedemikian:

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))
Salin selepas log masuk

Penyelesaian berasaskan pemeriksaan ini harus dipertimbangkan berhati-hati kerana ia boleh membawa kepada tingkah laku yang tidak dijangka dalam situasi tertentu. Oleh itu, pendekatan alternatif, seperti membaca fail konfigurasi dan menjana kamus, harus diterokai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Nama Pembolehubah Python Secara Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan