Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Menamakan Lambdas dalam Python Dianggap Pythonic?

Adakah Menamakan Lambdas dalam Python Dianggap Pythonic?

DDD
DDDasal
2024-12-03 08:10:10933semak imbas

Is Naming Lambdas in Python Considered Pythonic?

Adakah Penamaan Lambdas 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!

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