Rumah > Artikel > pembangunan bahagian belakang > Berikut ialah beberapa pilihan tajuk, bermain dengan gaya soalan yang berbeza: Langsung & Fokus: * Setara Python untuk compact() dan extract() PHP: Bagaimana Mencapai Fungsi Serupa? * Menggantikan
Analog Python untuk compact() dan extract() PHP
Dalam PHP, compact() dan extract() ialah fungsi yang digunakan secara meluas yang memudahkan penciptaan dan pengekstrakan jadual hash dengan nilai atau pembolehubah tertentu. Ini telah menimbulkan persoalan tentang ketersediaan mereka dalam Python.
Melaksanakan compact()
Untuk Python, kemungkinan pelaksanaan compact() ialah:
<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>
Melaksanakan ekstrak()
Walaupun compact() boleh dilaksanakan, mengekstrak nilai menghadapi cabaran dalam penterjemah Python moden. Sebelum ini, anda boleh menggunakan:
<code class="python">def extract(vars): caller = inspect.stack()[1][0] # caller of extract() for n, v in vars.items(): caller.f_locals[n] = v # NEVER DO THIS - not guaranteed to work</code>
Walau bagaimanapun, ini tidak lagi berfungsi dengan pasti.
Alternatif
Perlu diperhatikan bahawa fungsi ini mungkin tidak dianggap sebagai amalan baik dalam Python. Mereka bertentangan dengan prinsip kejelasan, kesederhanaan dan kefahaman. Pertimbangkan pendekatan alternatif seperti menggunakan:
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, bermain dengan gaya soalan yang berbeza: Langsung & Fokus: * Setara Python untuk compact() dan extract() PHP: Bagaimana Mencapai Fungsi Serupa? * Menggantikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!