Bila Menggunakan 'try' vs. 'if' untuk Pengujian Nilai dalam Python
Dalam Python, apabila menguji sama ada pembolehubah mempunyai nilai, pilihan antara menggunakan 'cuba' atau 'jika' sering timbul. Soalan ini bertujuan untuk memberi panduan tentang rasional di sebalik setiap konstruk.
Pertimbangkan fungsi yang mengembalikan sama ada senarai atau tiada nilai. Untuk menyemak keputusan sebelum memproses, kami mempunyai dua pilihan:
result = function(); if (result): for r in result: # process items
atau
result = function(); try: for r in result: # Process items except TypeError: pass;
Rasional untuk 'cuba'/'kecuali'
Pendekatan 'cuba'/'kecuali' menganggap kehadiran nilai dalam 'hasil' dan mengendalikan kemungkinan pengecualian (cth., TypeError jika fungsi mengembalikan Tiada). Ini mengikut prinsip EAFP (Easier to Ask for Forgiveness than Permission), yang lebih suka menangkap pengecualian apabila ia berlaku dan bukannya menyemaknya terlebih dahulu. Ia lebih cekap dalam senario di mana pengecualian jarang berlaku.
Rasional untuk 'jika'
Pendekatan 'jika' secara eksplisit menyemak kehadiran nilai sebelum cuba untuk memprosesnya. Walaupun ia boleh menjadi lebih perlahan, adalah disyorkan apabila pengecualian dijangka kerap berlaku (iaitu, apabila 'hasil' berkemungkinan Tiada dalam kes ini).
Kesimpulan
Pilihan bergantung pada jangkaan kekerapan pengecualian. Untuk pengecualian yang jarang berlaku, 'cuba'/'kecuali' adalah lebih pantas dan mengikut prinsip EAFP. Jika tidak, 'jika' adalah lebih bijak untuk mengelakkan pengendalian pengecualian yang tidak perlu.
Pertimbangan Tambahan
Atas ialah kandungan terperinci Bila hendak menggunakan 'cuba' vs. 'jika' untuk Mengendalikan Potensi Tiada Nilai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!