Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Meniru Fungsi padat() dan ekstrak() PHP dalam Python?

Bagaimana untuk Meniru Fungsi padat() dan ekstrak() PHP dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-10-25 19:44:02405semak imbas

 How to Replicate PHP's compact() and extract() Functionality in Python?

Rakan Sejawat PHP() dan Extract() dalam Python

Fungsi compact() PHP memasang jadual hash dengan nilai yang sepadan dengan jadual simbol yang ditentukan names, dan extract() membalikkan proses ini. Walaupun Python menyediakan locals(), globals(), dan vars(), ia tidak mempunyai mekanisme terbina dalam untuk mengasingkan sebahagian daripada nilai ini.

Melaksanakan Compact()

Jika mahu, anda boleh melaksanakan Python yang setara dengan compact() seperti berikut:

<code class="python">import inspect

def compact(*names):
    caller = inspect.stack()[1][0] # caller of compact()
    vars = {}
    for n in names:
        if n in caller.f_locals:
            vars[n] = caller.f_locals[n]
        elif n in caller.f_globals:
            vars[n] = caller.f_globals[n]
    return vars</code>

Extract() dalam Python

Mencuba untuk mencipta ekstrak () fungsi dalam Python tidak digalakkan. Jurubahasa Python terdahulu membenarkan penyelesaian, tetapi dalam versi moden, ia tidak lagi berfungsi.

Perspektif Python

Menggunakan compact() dan extract() secara amnya tidak digalakkan dalam Python, kerana ia bertentangan dengan prinsip Pythonic kejelasan, kesederhanaan dan kejelasan. Walau bagaimanapun, fungsi ini mungkin mempunyai aplikasi khusus dalam penyahpepijatan, analisis bedah siasat atau penciptaan pembolehubah dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Meniru Fungsi padat() dan ekstrak() PHP dalam 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