Apabila bekerja dengan kod Python, menghadapi amaran daripada pustaka amaran boleh mengecewakan, terutamanya jika ia tidak berkaitan dengan tugas semasa. Ini menimbulkan persoalan tentang cara untuk melumpuhkan amaran ini dengan berkesan tanpa mengubah suai sebahagian besar kod.
Untuk kes terpencil, dokumentasi Python mencadangkan penggunaan pengurus konteks catch_warnings. Ini membolehkan anda menyekat amaran dalam blok kod tertentu:
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn() # Python 3.11 and above: with warnings.catch_warnings(action="ignore"): fxn()
Walaupun pendekatan ini berkesan menyekat amaran untuk fungsi tertentu, ia mungkin tidak praktikal apabila berurusan dengan sejumlah besar amaran. Untuk melumpuhkan amaran secara global, anda boleh menggunakan fungsi warnings.filterwarnings dengan tindakan "abaikan":
import warnings warnings.filterwarnings("ignore") # Ex: import warnings def f(): print('before') warnings.warn('you are warned!') print('after') f() # Prints warning warnings.filterwarnings("ignore") f() # No warning printed
Kaedah ini menyekat semua amaran semasa pelaksanaan kod. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa walaupun mengabaikan amaran boleh menjadikan pelaksanaan kod lebih cekap, ia juga mungkin menutup potensi isu yang memerlukan perhatian. Oleh itu, penindasan amaran terpilih menggunakan pengurus konteks catch_warnings biasanya disyorkan berbanding penindasan global.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melumpuhkan Amaran Python Dengan Berkesan Tanpa Perubahan Kod Yang Banyak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!