Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mendiamkan Amaran Python dengan Berkesan?

Bagaimanakah Saya Boleh Mendiamkan Amaran Python dengan Berkesan?

Barbara Streisand
Barbara Streisandasal
2024-12-07 10:31:11419semak imbas

How Can I Silence Python Warnings Effectively?

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!

Kenyataan:
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