Pengenalan:
Pengendali walrus, yang diperkenalkan dalam Python 3.8, ialah alat yang berguna untuk pembangun untuk memudahkan dan mengoptimumkan kod mereka. Ia membenarkan penugasan pembolehubah dalam ungkapan, menjadikannya pendekatan yang lebih ringkas dan cekap untuk pengaturcaraan. Walau bagaimanapun, seperti mana-mana alat, ia harus digunakan secara sederhana dan dengan pertimbangan yang baik. Dalam tutorial ini, kami akan meneroka contoh dunia sebenar penggunaan operator walrus dan menyerlahkan beberapa anti-corak untuk dielakkan.
Contoh Penggunaan Operator Walrus di Dunia Sebenar:
1. Mempermudahkan Pernyataan Bersyarat
Salah satu kes penggunaan yang paling biasa untuk pengendali walrus adalah untuk memudahkan pernyataan bersyarat. Katakan kita mempunyai fungsi yang mengembalikan panjang rentetan dan kita ingin menyemak sama ada panjangnya lebih besar daripada 10. Menggunakan pengendali walrus, kita boleh menetapkan panjang berubah terus dalam pernyataan bersyarat, menjimatkan baris kod.
Contoh pernyataan bersyarat tanpa pengendali walrus
panjang = len(tali)
jika panjang > 10:
print("String lebih panjang daripada 10 aksara.")
Contoh menggunakan operator walrus
jika (panjang := len(rentetan)) > 10:
print("String lebih panjang daripada 10 aksara.")
2. Mengelakkan Panggilan Fungsi Berulang
Dalam sesetengah kes, menggunakan operator walrus boleh meningkatkan prestasi kod kami dengan mengelakkan panggilan fungsi berulang. Dalam contoh berikut, kami ingin mengira gred purata pelajar, tetapi kita juga perlu menyemak sama ada pelajar itu telah lulus kelas. Tanpa pengendali walrus, kita perlu memanggil fungsi itu dua kali, tetapi dengan itu, kita boleh menetapkan hasil fungsi kepada pembolehubah dan menggunakannya dalam kedua-dua pernyataan bersyarat dan pengiraan.
Contoh tanpa pengendali walrus
gred1 = mengira_gred(pelajar, ujian1)
gred2 = mengira_gred(pelajar, ujian2)
jika (gred1 + gred2) / 2 >= 70:
print("Pelajar telah lulus kelas.")
jika ((gred1 := gred_kira(pelajar, ujian1)) + (gred2:= gred_kira(pelajar, ujian2))) / 2 >= 70:
print("Pelajar telah lulus kelas.")
3. Memudahkan Pemahaman Senarai
Pemahaman senarai ialah alat yang berkuasa untuk memanipulasi dan menapis data dalam senarai. Walau bagaimanapun, pemahaman senarai yang kompleks boleh menjadi sukar untuk dibaca dan dikekalkan. Menggunakan pengendali walrus boleh memudahkan pemahaman ini dengan membenarkan kami menetapkan pembolehubah dalam ungkapan.
Contoh pemahaman senarai tanpa pengendali walrus
hasil = [untung_kira(jualan, kos) untuk jualan, kos dalam data_jualan jika untung_kira(jualan, kos) > 50]
Contoh menggunakan operator walrus
hasil = [(keuntungan := kira_keuntungan(jualan, kos)) untuk jualan, kos dalam data_jualan jika untung > 50]
Anti-Corak: Cara Tidak Menggunakan Operator Walrus:
1. Pemahaman Senarai Kompleks
Walaupun pengendali walrus boleh memudahkan pemahaman senarai, penggunaan yang berlebihan boleh membawa kepada kod yang rumit dan tidak boleh dibaca. Dalam anti-corak ini, kami melihat pemahaman senarai dengan berbilang syarat dan tugasan bersarang. Ini boleh menjadi sukar untuk dibaca dan diselenggara, dan lebih baik pecahkan logik kepada langkah yang berasingan.
Contoh pemahaman senarai yang tidak kemas dengan pengendali walrus bersarang
data_jualan = [(100, 70), (200, 150), (150, 100), (300, 200)]
keputusan = [(jualan, kos, keuntungan, nisbah_jualan) untuk jualan, kos dalam data_jualan jika (keuntungan := kira_keuntungan(jualan, kos)) > 50
jika (nisbah_jualan := jualan / kos) > 1.5 jika (margin_keuntungan := (keuntungan / jualan)) > 0.2]
2. Operator Walrus Bersarang
Menggunakan operator walrus bersarang boleh menghasilkan kod yang sukar dibaca dan difahami. Dalam contoh ini, kita melihat pengendali bersarang dalam satu ungkapan, menjadikannya mencabar untuk membongkar logik dan memahami kod. Adalah lebih baik untuk memecahkan logik kepada beberapa baris untuk kebolehbacaan dan kebolehselenggaraan yang lebih baik.
Contoh pengendali walrus bersarang
nilai = [5, 15, 25, 35, 45]
ambang = 20
keputusan = []
untuk nilai dalam nilai:
if (above_threshold := value > threshold) dan (incremented := (new_value := value + 10) > 30):
results.append(new_value)
cetak(hasil)
Kesimpulan:
Pengendali walrus ialah alat yang berkuasa untuk memudahkan dan mengoptimumkan kod, tetapi ia harus digunakan dengan berhati-hati. Dengan memahami keupayaan dan hadnya, kami boleh menggunakannya dengan berkesan dalam kod kami dan mengelakkan anti-corak biasa.
Ujian Amalan Pensijilan Python MyExamCloud ialah alat yang berguna untuk mereka yang bersedia untuk sebarang pensijilan Python.
Atas ialah kandungan terperinci Mengoptimumkan Kod Anda dengan Operator Walrus Python: Contoh Dunia Sebenar dan Anti-Corak untuk Dielakkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!