Я использую это, чтобы вызывать предупреждения при анализе файла конфигурации. При этом могут произойти всевозможные ошибки, некоторые из которых являются фатальными, а некоторые - нет. Все эти нефатальные ошибки не должны прерывать разбор, но они также не должны выходить из внимания пользователя. Здесь модуль предупреждения приходит вЯ использую модуль «предупреждений»?
Я сейчас делаю это (псевдокод):.
while parsing:
try:
get dictionary["token"]
except KeyError:
warnings.warn("Looks like your config file don't have that token")
Это все выглядит читаемым и уютно, но сообщение выглядит примерно так:
C:\Users\Renae\Documents\test.py:3: UserWarning: Looks like your config file don't have that token
warnings.warn("Looks like your config file don't have that token")
Почему он печатается дважды? Должен ли я выполнять какую-либо инициализацию перед выдачей предупреждений (например, модуля протоколирования)? В стандартных документах нет учебника об этом (или нет?).
Что отличает предупреждения от print(), stdout или stderr?