import warnings warnings.warn(message, category=None, stacklevel=1, source=None)
message - строка предупреждения,category=None - категория предупреждения,stacklevel=1 - используется функциями-обертками,source=None - уничтоженный объект.Функция warn() модуля warnings выдает предупреждение или вызывает исключение, согласно настройкам фильтра предупреждений.
Аргумент category, если он указан, должен быть классом категории предупреждения. По умолчанию используется UserWarning.
В качестве альтернативы, message может быть экземпляром Warning, в этом случае категория аргумент category будет игнорироваться и будет использоваться message.__class__. В этом случае текст сообщения будет str(message).
Функция warnings.warn() создает исключение, если конкретное выданное предупреждение заменяется ошибкой с помощью фильтра предупреждений.
Аргумент stacklevel может использоваться функциями-обертками, написанными на Python, например:
def deprecation(message): warnings.warn(message, DeprecationWarning, stacklevel=2)
Это заставляет предупреждение ссылаться на функцию, которая вызывает deprecation(), а не к самому функцию deprecation(), так как последняя будет игнорировать цель предупреждающего сообщения.
Источник source, если он указан, является уничтоженным объектом, который выдал исключение ResourceWarning.
import warnings # определим класс в которым будем предупреждать # что метод 'old_method' считается устаревшим class MyClass: def __init__(self): self.text = "Пример WarnExample" def old_method(self): # Выводим предупреждение, что метод устаревший warnings.warn( "This is deprecated, use new_method() instead", DeprecationWarning ) print ('Это старый.', self.text) def new_method(self): print ('Это новый метод.', self.text) # установим фильтр предупреждений в 'default' >>> warnings.simplefilter('default') >>> example = MyClass() >>> example.old_method() # test.py:11: DeprecationWarning: This is deprecated, use new_method() instead # DeprecationWarning # Это старый. Пример WarnExample # установим фильтр предупреждений в 'error' >>> warnings.simplefilter('error') >>> example.old_method() # Traceback (most recent call last): # File "test.py", line 24, in <module> # e.old_method() # File "test.py", line 11, in old_method # DeprecationWarning # DeprecationWarning: This is deprecated, use new_method() instead