Rumah > pembangunan bahagian belakang > Tutorial Python > Bolehkah Anda Dapatkan Nama Pembolehubah Asal dalam Fungsi Python?

Bolehkah Anda Dapatkan Nama Pembolehubah Asal dalam Fungsi Python?

Barbara Streisand
Lepaskan: 2024-10-31 17:34:02
asal
1013 orang telah melayarinya

Can You Retrieve Original Variable Names in Python Functions?

Mendapatkan Nama Pembolehubah Asal dalam Fungsi Python

Dalam Python, mungkin kelihatan wajar untuk mendapatkan nama asal pembolehubah apabila ia diluluskan kepada sesuatu fungsi. Walau bagaimanapun, tugas ini tidak disokong secara langsung oleh bahasa.

Untuk mengatasinya, seseorang boleh memanfaatkan modul pemeriksaan, walaupun ia tidak disyorkan kerana potensi kelemahan dan kelemahan.

<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

Nota Penting:

  • Kaedah ini harus dianggap sebagai penggodaman dan tidak digunakan dalam kod pengeluaran.
  • Ia boleh pecah dalam situasi tertentu, seperti apabila menggunakan fungsi bersarang atau ungkapan lambda.
  • Terdapat pendekatan alternatif, seperti menghantar nama pembolehubah sebagai hujah tambahan.

Atas ialah kandungan terperinci Bolehkah Anda Dapatkan Nama Pembolehubah Asal dalam 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan