Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Menamakan Lambdas dalam Python Dianggap Pythonic?
Dalam Python, ungkapan lambda direka bentuk untuk menjadi fungsi tanpa nama. Walau bagaimanapun, sesetengah pembangun mendapati nilai dalam menamakan lambda dalam fungsi untuk penggunaan semula kod dan fungsi tertentu. Walau bagaimanapun, amalan ini menimbulkan persoalan: adakah ia mematuhi prinsip Pythonic?
Menurut PEP8, panduan gaya Python, menamakan lambda adalah tidak digalakkan. Sebaliknya, ia mengesyorkan menggunakan pernyataan def untuk menentukan fungsi dengan nama tertentu. Ini memastikan kejelasan, memudahkan pengesanan dan menghapuskan sebarang faedah menggunakan ungkapan lambda.
Ciri pentakrifan ungkapan lambda ialah tidak mahu dikenali. Dengan menamakannya, anda mengalih keluar kerahasiaan itu dengan berkesan. Lebih-lebih lagi, jika kefungsian itu khusus untuk fungsi di mana ia muncul, mentakrifkan fungsi berasingan mungkin tidak diperlukan. Pertimbangkan untuk menggunakan fungsi bersarang.
Sebagai contoh, dalam coretan kod yang diberikan:
def fcn_operating_on_arrays(array0, array1): indexer = lambda a0, a1, idx: a0[idx] + a1[idx] # codecodecode indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
Daripada menamakan pengindeks ungkapan lambda, ia boleh ditakrifkan menggunakan fungsi bersarang:
def fcn_operating_on_arrays(array0, array1): def indexer(a0, a1, idx): return a0[idx] + a1[idx] # codecodecode indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
Dengan menggunakan fungsi bersarang, kefungsian kekal khusus untuk fungsi luar, menyediakan fungsi bernama dan mematuhi prinsip Pythonic.
Atas ialah kandungan terperinci Adakah Menamakan Lambdas dalam Python Dianggap Pythonic?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!