Mari kita asumsikan iterasi di mana kita memanggil suatu fungsi tanpa nilai balik. Cara saya berpikir program saya harus berperilaku dijelaskan dalam pseudocode ini:
for element in some_list:
foo(element)
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return None
do much much more...
Jika saya menerapkan ini dalam python, itu mengganggu saya, bahwa fungsi mengembalikan a None
. Apakah ada cara yang lebih baik untuk "keluar dari suatu fungsi, yang tidak memiliki nilai balik, jika sebuah cek gagal dalam tubuh fungsi"?
raise
pengecualian (atau, sangat jarang, membuat fungsi kembali Benar / Salah)Jawaban:
Anda cukup menggunakan
yang tidak persis sama dengan
Fungsi Anda juga akan kembali
None
jika eksekusi mencapai akhir dari fungsi tubuh tanpa memukulreturn
pernyataan. Mengembalikan apa pun sama dengan mengembalikanNone
dengan Python.sumber
return
tidak berfungsi, jika saya atura = method()
, di dalam metode yang saya gunakanreturn
, masih tetap menjalankan kode di belakang a. exit harus seperti php exit (), itu merusak program secara instan.import sys
pertama dan kemudiansys.exit()
jika Anda ingin keluar tetapi melaporkan keberhasilan atausys.exit("some error message to print to stderr")
.Saya akan menyarankan:
sumber
Anda dapat menggunakan
return
pernyataan tanpa parameter apa pun untuk keluar dari suatu fungsiatau ajukan pengecualian jika Anda ingin diberi tahu tentang masalahnya
sumber