>백엔드 개발 >파이썬 튜토리얼 >Python 경고를 효과적으로 음소거하려면 어떻게 해야 합니까?

Python 경고를 효과적으로 음소거하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-07 10:31:11426검색

How Can I Silence Python Warnings Effectively?

Python 경고 소리 줄이기

Python 코드에서 계속해서 발생하는 경고 메시지에 작별을 고하시겠습니까? 이는 과도한 경고를 생성하는 레거시 코드나 모듈로 작업할 때 특히 문제가 될 수 있습니다. 개별 기능에 대한 경고를 수동으로 비활성화하는 것이 옵션일 수 있지만 더 우아한 솔루션을 사용할 수 있습니다.

일시적으로 경고 억제

Python의 경고 모듈은 일시적으로 경고를 끄는 영리한 방법을 제공합니다. 경고. catch_warnings 컨텍스트 관리자를 활용하면 특정 코드 블록 중에 특정 경고 범주를 무시할 수 있습니다. with ... 문으로 코드를 래핑하는 것만큼 간단합니다.

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

또는 Python 버전 3.11 이상의 경우 더 간결한 구문을 사용할 수 있습니다.

with warnings.catch_warnings(action="ignore"):
    fxn()

전역 경고 억제

조금 기분이 나쁘다면 반항적이며 모든 경고를 한 번에 종료하려는 경우 warnings.filterwarnings 기능은 빠르고 더러운 솔루션을 제공합니다. 경고 합창단을 즉시 무음으로 설정하려면 작업을 "무시"로 설정하세요.

import warnings

warnings.filterwarnings("ignore")

def f():
    print('before')
    warnings.warn('you are warned!')
    print('after')

f()

이전:

>>> f()
before
<stdin>:3: UserWarning: you are warned!
after

이후:

>>> warnings.filterwarnings("ignore")
>>> f()
before
after

권장

대부분의 시나리오에서는 타겟 접근 방식을 사용하는 것이 좋습니다. 중요한 경고를 포착하는 기능을 유지하면서 특정 경고를 무시하는 catch_warnings입니다. 이렇게 하면 관련 없는 경고로 인해 문제를 해결하지 않게 됩니다. 그러나 모든 경고를 표시하지 않으려는 것이 확실하다면 warnings.filterwarnings 접근 방식이 전역 솔루션을 제공할 수 있습니다.

위 내용은 Python 경고를 효과적으로 음소거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.