Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Anda Dapatkan Nama Pembolehubah Asal yang Dilalukan kepada Fungsi Python?

Bolehkah Anda Dapatkan Nama Pembolehubah Asal yang Dilalukan kepada Fungsi Python?

DDD
DDDasal
2024-11-01 17:00:02877semak imbas

Can You Retrieve the Original Variable Names Passed to a Python Function?

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!

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