Menamakan Fungsi Tanpa Nama dalam Python: Pendekatan Pythonic
Dalam Python, ungkapan lambda menyediakan cara yang mudah untuk mencipta fungsi tanpa nama untuk cepat dan ringkas kod. Walau bagaimanapun, persoalan timbul: adakah pythonic menamakan lambda ini dalam fungsi?
Menurut garis panduan gaya PEP8, adalah tidak digalakkan untuk memberikan ungkapan lambda terus kepada pengecam. Amalan ini mengaburkan perbezaan antara fungsi tanpa nama dan bernama, menjadikan penyahpepijatan dan kebolehbacaan kod lebih sukar.
Bila Perlu Mengelakkan Menamakan Lambdas
Sebagai peraturan, elakkan menamakan lambdas jika fungsi adalah khusus untuk fungsi yang disertakan dan tidak diperlukan di tempat lain dalam pangkalan kod. Dalam kes sedemikian, kesederhanaan dan keringkasan lambda melebihi keperluan untuk menamakannya.
Alternatif kepada Lambdas Dinamakan
Apabila kefungsian memerlukan penggunaan semula atau dikongsi, pertimbangkan alternatif berikut:
Contoh
Pertimbangkan kod berikut:
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
Sebaliknya menamakan pengindeks ungkapan lambda, ia boleh ditulis semula menggunakan fungsi berasingan:
def indexer(a0, a1, idx): return a0[idx] + a1[idx] def fcn_operating_on_arrays(array0, array1): indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
Atas ialah kandungan terperinci Sekiranya Anda Menamakan Fungsi Lambda Tanpa Nama dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!