Kebolehbacaan dan kesederhanaan
Functional Programmingmenekankan penggunaan fungsi tulen, bermakna sesuatu fungsi tidak mempunyai kesan sampingan dan hanya bergantung kepada inputnya. Ini menjadikan kod lebih mudah dibaca dan lebih mudah untuk difikirkan, kerana pengaturcara boleh memfokuskan pada gelagat fungsi daripada bimbang tentang perubahan keadaan. Contoh berikut menunjukkan cara mengubah senarai secara berfungsi menggunakan fungsi python map()
:
numbers = [1, 2, 3, 4, 5] squared_numbers = map(lambda x: x**2, numbers) print(list(squared_numbers))# [1, 4, 9, 16, 25]
Pengasingan tugas
Pengaturcaraan fungsional menyokong pemecahan kod kepada fungsi yang lebih kecil dan boleh digunakan semula. Ini menjadikan kod lebih mudah untuk diselenggara dan difaktorkan semula kerana tanggungjawab fungsi adalah lebih jelas. Sebagai contoh, kita boleh memecahkan kod di atas menggunakan fungsi map()
kepada dua fungsi berasingan:
def square(x): return x**2 numbers = [1, 2, 3, 4, 5] squared_numbers = map(square, numbers) print(list(squared_numbers))# [1, 4, 9, 16, 25]
Ketidakbolehubah
Pengaturcaraan fungsional menggalakkan penggunaan struktur data tidak berubah seperti tupel dan string. Ini membantu mengelakkan perubahan keadaan yang tidak dijangka, menjadikan kod anda lebih mantap dan boleh diramal. Fungsi dalam Pythontuple()
boleh digunakan untuk membuat senarai tidak berubah:
coordinates = (10, 20) # coordinates[0] = 30# TypeError: "tuple" object does not support item assignment
Fungsi pesanan lebih tinggi
Fungsi tertib tinggi ialah fungsi yang menerima fungsi sebagai fungsi input atau pulangan. Mereka menyediakan cara yang berkesan untuk mengabstrak dan menggunakan semula kod secara deklaratif. Terdapat banyak fungsi tertib tinggi terbina dalam dalam Python, seperti filter()
和 reduce()
:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd_numbers = filter(lambda x: x % 2 == 1, numbers) sum_of_odd_numbers = reduce(lambda x, y: x + y, odd_numbers) print(sum_of_odd_numbers)# 25
Penjana
Penjana ialah jenis lelaran khas yang menjana satu elemen pada satu masa dan bukannya menyimpan keseluruhan set dalam ingatan. Ini berguna untuk bekerja dengan set data yang besar atau urutan tak terhingga. Pernyataan yield
Python boleh digunakan untuk mencipta penjana:
def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b fibonacci_numbers = fibonacci() for i in range(10): print(next(fibonacci_numbers))# 0 1 1 2 3 5 8 13 21 34
Kelebihan
Pengaturcaraan fungsional menawarkan kelebihan berikut dalam Python:
Kesimpulan
Paradigma pengaturcaraan berfungsi menyediakan Python dengan alat yang berkuasa untuk menulis kod yang ringkas, boleh dibaca dan boleh diselenggara. Dengan memanfaatkan fungsi tulen, pengasingan tugas, kebolehubahan, fungsi tertib tinggi dan penjana, pengaturcara boleh mencipta penyelesaian yang teguh dan berskala.
Atas ialah kandungan terperinci Gunakan pengaturcaraan berfungsi Python untuk mencapai zen kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!