Bila hendak menggunakan 'cuba' vs. 'jika' untuk Mengendalikan Potensi Tiada Nilai dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-11-12 06:30:02
asal
638 orang telah melayarinya

When to Use 'try' vs. 'if' for Handling Potential None Values in Python?

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
Salin selepas log masuk

atau

result = function();
try:
    for r in result:
        # Process items
except TypeError:
    pass;
Salin selepas log masuk

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

  • Dokumentasi Python mengesyorkan menggunakan 'cuba'/'kecuali' untuk kawalan aliran apabila pengecualian adalah luar biasa.
  • penyata 'jika' sentiasa dikenakan kos, manakala persediaan 'cuba'/'kecuali' hampir percuma, tetapi pengendalian pengecualian adalah lebih mahal.
  • EAFP gaya dianggap "pythonic" dan menggalakkan kod yang bersih dan ringkas.

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan