Membungkam Korus Amaran Python
Adakah anda ingin mengucapkan selamat tinggal kepada aliran amaran yang berterusan dalam kod Python anda? Ini boleh menyusahkan terutamanya apabila bekerja dengan kod atau modul warisan yang menjana amaran berlebihan. Walaupun melumpuhkan amaran secara manual untuk fungsi individu mungkin menjadi pilihan, terdapat lebih banyak penyelesaian elegan yang tersedia.
Menekan Amaran Buat sementara waktu
Modul amaran Python menawarkan cara bijak untuk menyenyapkan sementara waktu amaran. Dengan menggunakan pengurus konteks catch_warnings, seseorang boleh mengabaikan kategori amaran tertentu semasa blok kod tertentu. Ia semudah membungkus kod anda dalam pernyataan dengan ....
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn()
Sebagai alternatif, untuk Python versi 3.11 dan ke atas, sintaks yang lebih ringkas tersedia:
with warnings.catch_warnings(action="ignore"): fxn()
Penindasan Amaran Global
Jika anda berasa sedikit memberontak dan akan sebaliknya matikan semua amaran sekaligus, fungsi warnings.filterwarnings menyediakan penyelesaian yang cepat dan kotor. Hanya tetapkan tindakan untuk "mengabaikan" untuk menyenyapkan koir amaran serta-merta.
import warnings warnings.filterwarnings("ignore") def f(): print('before') warnings.warn('you are warned!') print('after') f()
Sebelum:
>>> f() before <stdin>:3: UserWarning: you are warned! after
Selepas:
>>> warnings.filterwarnings("ignore") >>> f() before after
Syor
Untuk kebanyakan senario, kami mengesyorkan pendekatan yang disasarkan menggunakan catch_warnings untuk mengabaikan amaran tertentu sambil mengekalkan keupayaan untuk menangkap amaran penting. Ini memastikan anda tidak menyelesaikan masalah berdasarkan amaran yang tidak berkaitan. Walau bagaimanapun, jika anda positif bahawa anda mahu menyekat semua amaran, pendekatan warnings.filterwarnings boleh memberikan penyelesaian global.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendiamkan Amaran Python dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!