Python Glossary English

все Python 3warningsфункция

warnings.showwarning()

вывод предупреждений

Функция, которой модуль warnings выводит каждое прошедшее фильтры предупреждение; по умолчанию пишет в stderr, её можно подменить.

Синтаксис

warnings.showwarning(message, category, filename, lineno, file=None, line=None)

Подмена warnings.showwarning отправляет предупреждения в свой интерфейс или файл, но фильтры она не обходит: заглушённое или уже показанное в этой строке предупреждение до неё не дойдёт. Подменять лучше внутри catch_warnings() — он вернёт исходную функцию на выходе. Для отправки в логи есть готовый logging.captureWarnings(True), который подменяет именно её.

Примеры

import warnings
def to_stdout(message, category, filename, lineno, file=None, line=None):
    print(f'[{category.__name__}] {message}')
with warnings.catch_warnings():
    warnings.simplefilter('always')
    warnings.showwarning = to_stdout
    warnings.warn('кэш устарел')
    to_stdout('проверка', UserWarning, '', 0)  # → [UserWarning] проверка

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности