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

Bagaimanakah Saya Boleh Mendiamkan Amaran Python dengan Berkesan?

Barbara Streisand
Lepaskan: 2024-12-07 10:31:11
asal
414 orang telah melayarinya

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()
Salin selepas log masuk

Sebagai alternatif, untuk Python versi 3.11 dan ke atas, sintaks yang lebih ringkas tersedia:

with warnings.catch_warnings(action="ignore"):
    fxn()
Salin selepas log masuk

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()
Salin selepas log masuk

Sebelum:

>>> f()
before
<stdin>:3: UserWarning: you are warned!
after
Salin selepas log masuk

Selepas:

>>> warnings.filterwarnings("ignore")
>>> f()
before
after
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan