Mengendalikan Tamat Masa Fungsi dalam Python
Apabila memanggil fungsi yang mungkin terhenti, menjadi penting untuk menyediakan mekanisme untuk mengendalikan dengan anggun situasi sedemikian dan menghalang skrip daripada membeku selama-lamanya. Satu penyelesaian yang berkesan untuk masalah ini ialah menetapkan tamat masa untuk panggilan fungsi.
Modul isyarat Python menyediakan fungsi yang diperlukan untuk mendaftar pengendali isyarat yang akan digunakan jika fungsi melebihi tamat masa yang ditentukan. Begini cara ia boleh dilaksanakan:
import signal def handler(signum, frame): print("Timeout reached!") raise Exception("Function call timed out") def function_to_timeout(): print("Running function...") # Simulate a long-running task for i in range(10): time.sleep(1) # Register the signal handler signal.signal(signal.SIGALRM, handler) # Set a timeout of 5 seconds signal.alarm(5) try: # Call the function function_to_timeout() except Exception as exc: print(exc)
Apabila function_to_timeout() dipanggil, ia akan mencetak mesej yang menunjukkan bahawa ia sedang berjalan. Signal.alarm(5) menetapkan tamat masa 5 saat, selepas itu fungsi pengendali akan dicetuskan. Dalam pengendali, pengecualian dinaikkan untuk menamatkan panggilan fungsi.
Pendekatan ini membolehkan anda menetapkan tamat masa tertentu untuk fungsi dan keluar dari skrip dengan anggun sekiranya fungsi mengambil masa lebih lama daripada masa yang ditentukan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Masa Tamat Fungsi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!