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

DDD
Lepaskan: 2024-11-01 17:00:02
asal
889 orang telah melayarinya

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

Output:

['e', '1000', 'c']
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!