Mengambil semula Nama Pembolehubah Asal yang Dilalukan kepada Fungsi
Dalam Python, mendapatkan nama asal pembolehubah yang dihantar kepada fungsi mungkin kelihatan seperti mudah tugasan. Walau bagaimanapun, skop pembolehubah Python dan penaipan dinamik menimbulkan beberapa cabaran dalam mencapai ini. Walau bagaimanapun, terdapat cara untuk mengatasi had ini, walaupun ia tidak disyorkan untuk kegunaan praktikal kerana kerumitan dan kemungkinan kesulitannya.
Menggunakan modul periksa, adalah mungkin untuk mendapatkan semula konteks kod panggilan berfungsi dan mengekstrak nama pembolehubah yang diluluskan. Contoh Python berikut menunjukkan cara ini boleh dilakukan:
<code class="python">import inspect def foo(a, f, b): frame = inspect.currentframe() frame = inspect.getouterframes(frame)[1] string = inspect.getframeinfo(frame[0]).code_context[0].strip() args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: names.append(i.split('=')[1].strip()) else: names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b=c) main()</code>
Output:
['e', '1000', 'c']
Adalah penting untuk ambil perhatian bahawa teknik ini hanya boleh digunakan untuk tujuan pendidikan atau eksperimen. Adalah tidak digalakkan untuk melaksanakan kaedah ini dalam kod pengeluaran, kerana ia boleh membawa kepada kod yang rapuh, sukar untuk nyahpepijat dan berpotensi terdedah kepada isu keselamatan.
Secara umum, adalah lebih baik untuk menghantar nama pembolehubah secara eksplisit sebagai argumen tambahan kepada fungsi atau untuk menggunakan pendekatan lain untuk mengendalikan tugas yang tidak memerlukan mendapatkan nama pembolehubah asal.
Atas ialah kandungan terperinci Bolehkah Anda Dapatkan Nama Pembolehubah Asal yang Dilalukan kepada Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!