Python Glossary English

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

warnings.simplefilter()

фильтры

Добавляет правило фильтра по категории предупреждения: 'error', 'ignore', 'always', 'default', 'module' или 'once' — без условий по тексту.

Синтаксис

warnings.simplefilter(action, category=Warning, lineno=0, append=False)

Именно фильтры решают, увидит ли пользователь предупреждение: по умолчанию Python прячет DeprecationWarning вне __main__, PendingDeprecationWarning, ImportWarning и ResourceWarning, а остальные показывает один раз на место в коде. simplefilter('error') превращает предупреждения в исключения — так тесты ловят устаревшие вызовы; 'ignore' глушит. Снаружи, без правки кода, то же задаёт ключ python -W error::DeprecationWarning или переменная PYTHONWARNINGS; правило из кода встаёт в начало списка и перекрывает их. Изменение глобально — временное делайте в catch_warnings().

Примеры

import warnings
warnings.simplefilter('error', DeprecationWarning)
try:
    warnings.warn('функция устарела', DeprecationWarning)
except DeprecationWarning as e:
    print('исключение:', e)  # → исключение: функция устарела
import warnings
with warnings.catch_warnings(record=True) as caught:
    warnings.simplefilter('once')
    for _ in range(3):
        warnings.warn('медленный путь')
print(len(caught))  # → 1

См. также

Частые ошибки

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