Rumah > pembangunan bahagian belakang > Tutorial Python > Fungsi tertib tinggi dalam Python

Fungsi tertib tinggi dalam Python

WBOY
Lepaskan: 2023-09-13 18:53:09
ke hadapan
683 orang telah melayarinya

Fungsi tertib tinggi dalam Python

Pengenalan

Python's World of Higher-Order Functions Jika anda ingin meningkatkan kemahiran pengaturcaraan Python anda dan menjana kod yang lebih ekspresif dan cekap, anda telah datang ke tempat yang betul. Fungsi dalam Python adalah lebih daripada sekadar blok kod khusus. Ia juga merupakan perkara yang berkuasa yang boleh dialihkan, dipindahkan, dan juga dijana secara dinamik. Fungsi tertib tinggi meningkatkan kepelbagaian ini dengan memproses fungsi lain.

Artikel ini akan membincangkan secara meluas prinsip fungsi peringkat tinggi. Kami akan meneroka asas proses sebagai objek kelas pertama, menyelami contoh dunia sebenar bagi fungsi tertib tinggi dan menggalakkan kuasa fungsi lambda untuk kod yang jelas dan cantik. Model pengaturcaraan berfungsi dan kelebihannya apabila digunakan dalam Python juga akan dibincangkan. Selepas membaca artikel ini, anda akan mempunyai pemahaman yang kukuh tentang fungsi tertib tinggi dan mengetahui cara menggunakannya untuk menjana kod Python yang benar-benar jelas, modular dan cekap. Jadi, kami akan menemui potensi fungsi tertib tinggi Python!

Fahami fungsi sebagai objek kelas pertama

Memahami konsep fungsi sebagai objek kelas pertama dalam Python adalah penting untuk memahami fungsi lanjutan. Fungsi ialah objek yang boleh ditentukan sebagai pembolehubah, disediakan sebagai argumen kepada fungsi lain, atau bahkan dikembalikan daripada fungsi dalam Python. Ini bukan sekadar blok kod. Kami akan menyelidiki konsep di atas untuk mendedahkan fleksibiliti dan kebolehsuaian fungsi Python.

Teroka fungsi tertib lebih tinggi

Sekarang kami yakin dalam memahami fungsi sebagai objek kelas pertama, kini kami boleh melihat ke dalam fungsi peringkat lebih tinggi. Operasi peringkat tinggi ialah operasi yang dilakukan pada fungsi lain. Kami akan mempelajari perbezaan antara fungsi tertib tinggi dan fungsi tertib rendah, dan melihat beberapa fungsi tertib tinggi yang terkenal yang disediakan oleh Python, seperti map(), filter(), dan reduce(). Melalui contoh harian, kami akan mempelajari cara fungsi ini memudahkan dan meningkatkan ekspresi kod anda.

Buat fungsi tersuai tertib lebih tinggi

Walaupun perpustakaan standard Python menyediakan pelbagai fungsi tertib tinggi yang berkuasa, dalam sesetengah kes, kami perlu membangunkan fungsi tertib tinggi unik kami sendiri untuk memenuhi keperluan khusus. Dengan mencipta fungsi tersuai yang lebih tinggi, kami mempunyai kebebasan untuk mencipta fungsi khusus untuk memenuhi keperluan kami. Bahagian ini mengkaji proses mencipta dan menggunakan fungsi tertib tinggi yang unik. Apabila membina fungsi tersuai tertib tinggi, kami mempunyai keupayaan untuk menerangkan parameter dan menentukan gelagat yang diingini. Kami boleh mengendalikan hujah kata kunci dan pembolehubah serta menambah idea yang lebih kompleks seperti penghias fungsi.

Ini adalah kes apabila kami ingin membina fungsi tertib lebih tinggi yang menangkap corak atau gelagat tertentu dan membolehkan kami menggunakannya semula di seluruh pangkalan kod kami. Pertimbangkan senario di mana kita perlu merancang untuk menyelesaikan tugas tertentu secara tetap. Daripada menduplikasi kod pemasaan untuk setiap fungsi, seseorang boleh membangunkan fungsi tersuai lebih tinggi yang menerima fungsi sebagai input dan mengembalikan fungsi baharu yang turut merangkumi algoritma pemasaan. Ini membolehkan kami menambah fungsi pemasaan secara automatik dengan hanya menghiasi fungsi objektif kami dengan fungsi tertib lebih tinggi.

Contoh

import time 
 
def timing_decorator(func):     
   def wrapper(*args, **kwargs): 
      start_time = time.time()         
      result = func(*args, **kwargs)         
      end_time = time.time()         
      execution_time = end_time - start_time         
      print(f"Function {func.__name__} took {execution_time:.2f} seconds to execute.")         
      return result     
   return wrapper 
 
@timing_decorator 
def expensive_operation(): 
   # Perform the expensive operation here    
   time.sleep(2) 
 
expensive_operation() 
Salin selepas log masuk

Output

Function expensive_operation took 2.00 seconds to execute. 
Salin selepas log masuk

Fungsi tertib tinggi biasa dalam perpustakaan standard Python

Pustaka standard Python menyediakan sejumlah besar fungsi tertib tinggi yang boleh memudahkan kod kami dengan ketara dan meningkatkan fungsinya. Dalam bahagian ini, kita akan menyelidiki beberapa fungsi tertib tinggi yang biasa digunakan yang disediakan oleh perpustakaan standard.

  • Kita boleh mengisih komponen koleksi menggunakan kaedah sorted(). Ia menerima gelung sebagai input dan menjana senarai baharu dengan urus niaga dalam tertib menaik. Selain itu, anda boleh menggunakan parameter utama untuk menukar kriteria pengisihan.

  • Jika objek boleh lelar mengandungi sekurang-kurangnya satu elemen True, mana-mana() mengembalikan True, sebaliknya, mengembalikan False. Ia menerima objek lelaran sebagai input. Ia berguna untuk menentukan sama ada elemen dalam koleksi memenuhi syarat.

  • Serupa dengan mana-mana(), kaedah all() hanya mengembalikan True jika setiap elemen dalam iterable adalah True. Ia boleh berguna apabila kita ingin memastikan setiap elemen dalam koleksi memenuhi setiap kriteria.

  • Fungsi modul Functools termasuk: Fungsi tertib tinggi dalam pakej functools ialah alatan berguna untuk pengaturcaraan berfungsi. Ciri-ciri penting termasuk:

    • map() menggunakan fungsi yang ditentukan untuk setiap elemen lelaran dan mengembalikan lelaran yang mengandungi hasilnya.

    • filter(): Kaedah penapis() membina lelaran daripada elemen boleh lelar yang memenuhi syarat yang telah ditetapkan.

    • reduce(): Kaedah reduce() boleh diimport daripada modul functools, walaupun ia tidak tersedia secara langsung dalam Python 3. Ia mengubah setiap ahli senarai dengan menggunakan fungsi binari kepada satu nilai.

Amalan dan pertimbangan terbaik apabila menggunakan fungsi tertib lebih tinggi

  • Kebolehbacaan kod adalah penting, walaupun fungsi tertib lebih tinggi boleh menjadikannya lebih ekspresif. Untuk menerangkan matlamat dan tingkah laku fungsi peringkat tinggi, gunakan nama pembolehubah dan fungsi yang sesuai. Jika fungsi melakukan sebarang logik atau transformasi yang kompleks, tambahkan ulasan untuk menerangkannya.

  • Pecahkan aktiviti sukar kepada fungsi yang lebih kecil dan boleh diguna semula untuk mencapai reka bentuk modular. Menguji dan menyahpepijat komponen individu menjadi lebih mudah kerana penggunaan semula dan kebolehselenggaraan kod digalakkan.

  • Fungsi tertib tinggi membolehkan komposisi fungsi yang cekap, di mana hasil daripada satu fungsi boleh digunakan sebagai input kepada fungsi yang lain. Hayati strategi ini kerana ia menggalakkan penggunaan semula kod, modulariti dan pendekatan pengaturcaraan deklaratif.

  • Pertimbangkan prestasi: Walaupun fungsi tertib lebih tinggi boleh menjadikan kod anda lebih mudah difahami, perlu diingat bahawa ia mungkin menambah overhed dengan panggilan fungsi dan pemprosesan tambahan. Pertimbangkan menggunakan kaedah alternatif untuk mengoptimumkan kod anda atau fokus pada kawasan tertentu kod anda dalam situasi kritikal prestasi.

  • Elakkan sarang dalam: Penggunaan fungsi tertib tinggi yang berlebihan boleh membawa kepada kod bersarang dalam. Untuk mengekalkan kejelasan kod dan meminimumkan kerumitan, elakkan menggunakan sarang yang berlebihan. Pemfaktoran semula kod untuk membahagikan kebimbangan kepada fungsi yang lebih kecil mungkin diperlukan.

  • Beri perhatian kepada keadaan dan kesan sampingan: Untuk memastikan kebolehramalan dan kebolehselenggaraan, fungsi tertib tinggi adalah terbaik tanpa kewarganegaraan dan tidak mempunyai kesan sampingan. Berhati-hati apabila menggunakan struktur data boleh ubah atau menukar pembolehubah di luar skop fungsi. Jika boleh, sokong kebolehubahan dan ketulenan fungsi.

  • Ujian unit: Untuk memastikan fungsi tertib lebih tinggi berfungsi seperti yang diharapkan, ujinya secara meluas. Untuk mengesahkan kefungsiannya, buat kes ujian yang merangkumi pelbagai senario dan persekitaran tepi. Jika perlu, ejek kebergantungan luar untuk mengasingkan dan menguji rutin tertentu.

Kesimpulan

Ringkasnya, fungsi tertib tinggi ialah alat berkuasa dalam Python yang membolehkan kami menulis kod yang lebih ekspresif dan cekap. Dengan memahami prinsip mereka, meneroka fungsi perpustakaan standard dan mencipta fungsi tersuai lebih tinggi, kami boleh membuka kunci potensi pengaturcaraan berfungsi dan meningkatkan amalan pengekodan kami.

Atas ialah kandungan terperinci Fungsi tertib tinggi dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan