Sekiranya Anda Menamakan Fungsi Lambda Tanpa Nama dalam Python?

Barbara Streisand
Lepaskan: 2024-11-23 05:10:14
asal
328 orang telah melayarinya

Should You Name Anonymous Lambda Functions in Python?

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:

  • Mentakrifkan Asing Fungsi: Cipta fungsi bernama di luar skop yang disertakan dan panggilnya di mana perlu. Pendekatan ini memastikan kejelasan dan memudahkan penggunaan semula kod.
  • Menggunakan Fungsi Tertib Tinggi: Manfaatkan fungsi tertib tinggi yang mengambil fungsi lain sebagai hujah. Ini membolehkan anda menghantar fungsi tanpa nama tanpa menamakannya secara eksplisit.

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

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