Сообщить об ошибке.

Создание сообщений Warning в программе Python

Модуль warnings полезен, когда необходимо предупредить пользователя о каком-либо условии в программе и это условие не требует создания исключения и завершения программы. Например, может возникнуть необходимость выдать предупреждение, когда программа использует устаревший модуль.

Программисты Python выдают предупреждения, вызывая функцию warnings.warn(), определенную в этом модуле.

Предупреждающие сообщения обычно записываются в sys.stderr, но их расположение можно гибко изменять, от игнорирования всех предупреждений до превращения их в исключения. Расположение предупреждений может варьироваться в зависимости от категории предупреждения, текста предупреждения и местоположения источника, в которое оно отправлено. Повторения определенного предупреждения для одного и того же местоположения источника обычно подавляются.

Управление предупреждением состоит из двух этапов:

  • каждый раз, когда выдается предупреждение, определяется, должно ли сообщение быть выдано или нет
  • если сообщение должно быть отправлено, то оно форматируется и печатается с использованием настраиваемой пользователем перехватчика.

Определение того, следует ли выдавать предупреждающее сообщение, контролируется фильтром предупреждений, который представляет собой последовательность соответствующих правил и действий. Правила можно добавить в фильтр, вызвав warnings.filterwarnings() и сбрасывать его в состояние по умолчанию функцией warnings.resetwarnings().

Печать предупреждающих сообщений выполняется с помощью функции warnings.showwarning(), которая может быть переопределена. Реализация по умолчанию этой функции форматирует сообщение, вызывая warnings.formatwarning(), которая доступна для использования пользовательскими реализациями.